grep
文件查找、替换
-i 不区分大小写
-v 取反
-n 标记数列
-o 显示运行信息
-e 可以使用扩展数列
-w 取单词
[root@lidao ~]# grep -w 'oldboy' /oldboy/oldboy.txt
oldboy
oldboy
oldboy
[root@lidao ~]# grep 'oldboy' /oldboy/oldboy.txt
oldboy
oldboy
oldboyoldboy
oldboy
oldboy1oldboys
wkoldboy
-l 只显示文件名 ,不显示文件内容
[root@lidao ~]# grep -l 'oldboy'
/oldboy/oldboy.txt
/oldboy/oldboy.txt
-R 递归查询,目录
[root@lidao ~]# grep -R /tmp/ /etc /oldboy/
/etc/libreport/events.d/abrt_event.conf:# EVENT=post-create date >/tmp/dt # semicolon is not needed here!
/etc/libreport/report_event.conf:# EVENT=post-create date >/tmp/dt # semicolon is not needed here!
/etc/libreport/report_event.conf:#EVENT=report_Dummy analyzer=libreport echo "Hello world" >> /tmp/libreport.log
/etc/selinux/targeted/active/file_contexts:/tmp/.* <<none>>
/etc/selinux/targeted/active/file_contexts:/usr/tmp/.* <<none>>
/etc/selinux/targeted/active/file_contexts:/var/tmp/.* <<none>>
-A
显示grep找出的内容及接下来的几行 英译after
[root@lidao ~]# seq 10 | grep -A2 "1"
1
2
3
--
10
-B
before
-C
-C2 ===-A2 -B2
sed的作用
增加、替换、查询、删除
每个文件 源源不断水流(一行接一行)stream edirtor 流编辑器
增删改查
sed命令执行过程
-n 详细显示命令
[root@lidao ~]# sed -n '3p' /oldboy/oldboy.txt
3
sed -n '3p' /oldboy/oldboy.txt
参数 条件 命令 文件名
p 查看文件行号
根据行号进行查找
[root@lidao /oldboy]# sed -n '5p'
/oldboy/lidao.txt
104,yy,CFO
[root@lidao /oldboy]# sed -n '1,5p' /oldboy/lidao.txt
dao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
oldboy或yy 加扩展正则加r
[root@lidao /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO
从哪来到哪去
[root@lidao /oldboy]# sed -n '/102/,/105/p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
append
增加
```
[root@lidao /oldboy]# sed '3a119,xiaogong,ufo' lidao.txt
dao.txt
101,oldboy,CEO
102,zhangyao,CTO
119,xiaogong,ufo
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
追加 在你指定的行后面 -a
[root@lidao /oldboy]# sed '3a1111,lidao.txt' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
1111,lidao.txt
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
220,xiaoxiao.lidao
插入 在你指定的行上面 -i
[root@lidao /oldboy]# sed '3i1111,lidao.txt' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
1111,lidao.txt
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
220,xiaoxiao.lidao
覆盖 在这一行内容先清空 然后写入 -c
[root@lidao /oldboy]# sed '3c1111,lidao.txt' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
1111,lidao.txt
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
220,xiaoxiao.lidao
-d 删除
删除空行
[root@lidao /oldboy]# sed '/^$/d' oldboy.txt
[root@lidao /oldboy]# sed -n '/^$/!p'
oldboy.txt
[root@lidao /oldboy]# grep -v '^$' oldboy.txt
-s 替换
sed 's#oldboy#alex#g ' oldboy.txt
[root@lidao /oldboy]# echo 123456 |sed 's#123456#<123456>#g'
[root@lidao /oldboy]# echo 123456 |sed 's#.*#<123456>#g'
<123456>
[root@lidao /oldboy]# echo 123456 |sed -r 's#(.*)#<\1>#g'
<123456>
[root@lidao /oldboy]# echo 123456 |sed -r 's#(12)(34)(56)#\1<\2>
12<34>56
[root@lidao /oldboy]# echo 123456 |sed -r 's#(.)#<\1>#g'
<1><2><3><4><5><6>
网友评论