2019-04-18日 课程总结

已学grep 参数

-o 显示过程 (显示grep每次匹配到的内容)
-i 过滤的时候不分大小写(ignore case忽略大小写)
-w 按单词过滤
-v 取反
-n 显示行号
-c 显示包含xxx的行,共多少行
-l (小写L)只显示文件名
-E 支持扩展正则
-A 显示包含xxxx的下x行
-B 显示包含xxxx的上x行
-C 显示包含xxxx上下x行
-R 递归进行过滤
Linux三剑客-sed

老男孩教育-sed命令执行过程

https://www.processon.com/view/link/5bea32c5e4b0ad314e894f53

sed命令分解

sed -n '3 p' oldboy.txt p=print (打印)
参数 条件 命令

sed命令参数

-n 取消默认输出
-r 支持扩展正则
-i 修改文件内容


2019-04-18日 课程总结_第1张图片
猪猪你看

测试环境准备

lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

sed 查找文件内容

[root@oldboyedu59 /oldboy]# sed -n '5p' lidao.txt
105,feixue,CIO
[root@oldboyedu59 /oldboy]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@oldboyedu59 /oldboy]# sed -n '/oldboy/p' lidao.txt
101,oldboy,CEO
[root@oldboyedu59 /oldboy]# sed -n '/[a-z]/p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

找出文件中包含oldboy或yy的行

[root@oldboyedu59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboyedu59 /oldboy]# egrep 'oldboy|yy' lidao.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboyedu59 /oldboy]# grep 'oldboy\|yy' lidao.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboyedu59 /oldboy]# egrep 'oldboy|yy' lidao.txt
101,oldboy,CEO
104,yy,CFO
[root@oldboyed
[root@oldboyedu59 /oldboy]# sed -n '/102/,/105/p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

sed 修改文件内容

[root@oldboyedu59 /oldboy]# cat  lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3a119,xiaohong,UFO'  lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO

a 将内容加到目标行下一行

[root@oldboyedu59 /oldboy]# cat lidao.txt 
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3i12306,lidao,HO' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
12306,lidao,HO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO

i 将内容加到目标行上一行

老男孩教育-sed命令格式和功能-2019-v2
https://www.processon.com/view/link/5cb7ede9e4b01941c8b13036

练习环境创建

I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 1351441522

not 4900000448
my god,i am not oldbey,but OLDBOY!

sed删除之删除 /oldboy/oldboy.txt中的空行

sed '/^/!p' oldboy.txt
grep -v '^$' oldboy.txt

awk
awk '/^$/' oldboy.txt 显示空行

awk '!/^$/' oldboy.txt 不显示空行

不显示文件/etc/ssh/sshd_config 的空行或以#号开头的行

各种姿势:

  • egrep -v '$|#' /etc/ssh/sshd_config

  • sed -r '/$|#/d' /etc/ssh/sshd_config

  • sed -rn '/$|#/!p' /etc/ssh/sshd_config

  • grep '^[a-Z]' /etc/ssh/sshd_config

  • awk '!/$|#/' /etc/ssh/sshd_config

[故障集合]那些年学习Linux坑你的故障集合
https://www.jianshu.com/p/99ec5bb4183f

sed 替换

命令解析:

sed 's#oldboy#alex#g' oldboy.txt
目标 替换为什么
s 替换
g global 全局替换

格式:

sed 's#oldboy#alex#g ' oldboy.txt
sed 's@oldboy@alex@g ' oldboy.txt
###
@/oldboy@/alex@
///
AAA

[面试题]老男孩教育-三剑客笔试题集合
https://www.jianshu.com/p/61d8883719ac

你可能感兴趣的:(2019-04-18日 课程总结)