阅读背景:

马哥教育网络班21期+第15周课程练习

来源:互联网 

1、总结sed和awk的详细用法;

sed 流编纂器,处置一行数据到模式空间(p),不匹配条件话就输出源行,匹配条件且有处置话,就输来路置过后的行和源行,
匹配条件且没有处置动作的话,只输出p空间的行;坚持空间(h)用来寄存模式空间的临时处置成果
[root@centos ~]# sed "" sed.txt 
1111   匹配条件没有处置动作,直接打印p空间读到的行
2222
3333
4444
[root@centos ~]# sed  "p" sed.txt 
1111   匹配条件且有处置话,就输来路置过后的行和源行
1111   
2222  
2222
3333
3333
4444
4444
[root@centos ~]# sed   -n "p" sed.txt 
1111  -n 匹配条件和处置后的行
2222
3333
4444
[root@centos ~]# sed   "2p" sed.txt 
1111   1,3,4行动不匹配条件,输出源行
2222   
2222   匹配条件且有处置话,就输来路置过后的行和源行
3333   
4444
[root@centos ~]# sed  "2G" sed.txt 
1111    1,3,4行动不匹配条件,输出源行
2222   
----    匹配条件且没有处置动作的话,只输出p的行(p的第二行变成了2222和h的空行)
3333
4444    G:从坚持空间取出内容追加至模式空间
[root@centos ~]# sed  "2g" sed.txt 
1111    1,3,4行动不匹配条件,输出源行
----    匹配条件且没有处置动作的话,只输出p的行(p的第二行2222被坚持空间的空行笼罩)
3333    g: 从坚持空间取出数据笼罩至模式空间;
4444
[root@centos ~]# sed "2h" sed.txt 
1111     1,3,4行动不匹配条件,输出源行
2222     匹配条件且没有处置动作的话,只输出p的行(p的第二行2222笼罩了h的空行,此时h的行动2222)
3333     h: 把模式空间中的内容笼罩至坚持空间中;
4444
[root@centos ~]# sed "2H" sed.txt 
1111     1,3,4行动不匹配条件,输出源行
2222     匹配条件且没有处置动作的话,只输出p的行(p的第二行2222追加到了h的空行,此时h的行动空行和2222)
3333     H:把模式空间中的内容追加至坚持空间中
4444
[root@centos ~]# sed "2x" sed.txt 
1111     1,3,4行动不匹配条件,输出源行
----        匹配条件且没有处置动作的话,只输出p的行(p的第二行2222变成了h的空行,此时h的行动2222)
3333     x: 把模式空间中的内容与坚持空间中的内容进行互换;
4444
[root@centos ~]# sed "n;p" sed.txt 
1111    第一行履行n,匹配条件且没有处置动作的话,只输出p空间的行 1111和2222(原来只有1111)
2222    
2222    第一行的p命令打印刚读取的下一行2222, 如此重复,下一次该从3333起
3333
4444
4444    n: 读取匹配到的行的下一行至模式空间,相当于每次处置两行数据;
[root@centos ~]# sed  "N;p" sed.txt 
1111     第一行履行N,匹配条件且没有处置动作的话,只输出p空间的行 1111和2222
2222
1111     第一行的p命令,则打印了p空间的行1111和2222 如此重复,下一次从3333起
2222
3333
4444
3333
4444   N:追加匹配到的行的下一行至模式空间,相当于每次处置两行数据;
[root@centos ~]# sed "$!N;$!D" sed.txt 
3333    
4444
匹配条件且没有处置动作的话,只输出p空间的行,首先1111,2222不是最后一行,则$!D从p空间删掉1111和2222,
然后3333,4444中的4444是最后一行,$!D没有起作用,最后p空间的3333,4444输出到屏幕
以上是自己个人懂得,不保证准确,,,更多用法请man sedsed 流编纂器,处置一行数据到模式空间(p),不匹配条件话就输



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: