linux--shell编程--文本处理三剑客

 前言:正则表达式

正则表达式:
    1.基本正则表达式
        ^ $  +
    3.扩展正则表达式
        ? {4,6}  |

^  代表以什么开头   ^root
$  代表以什么结尾   /$
+  代表前面的字符可以出现1次或者N次    a+  -->a  aa  aaa aaaaaaaaaaaa
|  代表或
?  代表前面的字符可以出现0或者1次    a?  -->a
*  代表前面的字符可以出现0次或者N次

一.grep/egrep的语法及使用(查找(文本过滤))

[root@web1 lianxi]# df -Th|grep "/$"|awk '{print $6}'
41%
[root@web1 lianxi]# df -Th|grep "/$"|awk '{print $((NF-1))}'
41%
[root@web1 lianxi]# df -Th|grep "/$"|awk '{print $((NF-1))}'|tr -d "%"
41
[root@web1 lianxi]# num=$(df -Th|grep "/$"|awk '{print $((NF-1))}'|tr -d "%")
[root@web1 lianxi]# echo $num
41

二.awk的语法及使用(截取)

语法:

$0 --> 表示整行文本

$1 --> 表示文本的第一个数据字段

-F --> 指定分隔符 (默认的字段分隔符是空白字符)

参数:

NR

NF -->

OPS

FS

awk -F: 'BEGIN{num=0}$1 ~ /^r/{num++;print $1}END{print num}' /etc/passwd


 substr(s, i [, n])      Return  the  at  most  n-character  substring of s starting at i.  If n is
                               omitted, use the rest of s.
s是我们的字符串
i是从第i个字符开始
n表示截取的字符串的长度
substr($1,1,4) 从第1个字符开始,连续截取4个字符

substr($1,3,5)  从第3个字符开始,连续截取5个字符

三.sed的语法及使用(替换)

sed - stream editor for filtering and transforming text
   stream editor 流编辑器--》文字流  --》sed

      1.文本的过滤查找   text  filtering
      2.文本的转换/替换  transforming text

[root@docker lianxi]# sed -n  '/longyi/ p' hehaotian.txt 

-n  不符合要求的行,不要显示出现
       -n, --quiet, --silent

              suppress automatic printing of pattern space

              pattern space 模式空间
              hold  space 保留空间

p  是sed内部的命令  输出内容到屏幕  print

[root@docker lianxi]# sed  -i  's/pan/zhang/' hehaotian.txt

-i   直接在原文件里进行修改  
    -i[SUFFIX], --in-place[=SUFFIX]  给原文件先进行备份,备份的文件名后面加一个后缀名

              edit files in place (makes backup if SUFFIX supplied)
加后缀名.bak
[root@docker lianxi]# sed  -i.bak  's/cao/liu/' hehaotian.txt

s/pan/zhang/   使用zhang去替换pan  s是替换命令  substitute

c  整行替换
    selinux文件
s 局部替换
    修改ip地址
    加注释
& 代表前面查找匹配的内容  代表旧的字符串
        's/luqianjun/&sanchuang/g'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值