在IBM的”通用线程 — sed 实例“这文章里学了点sed的用法,IBM的文章真的全是精品!
通俗易懂,而且还配有实例,真是经典中的经典~趁着现在有空把学来的写进博客,以免忘记。本人记性不是一般的不好 – -! ~~
root@debian:~/test# cat aaa.txt
112231234
#!/usr/bin
aaaaaaaaaa
bbbbbbbbb
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
删除第一行 sed ‘1d’
root@debian:~/test# sed ‘1d’ aaa.txt
#!/usr/bin
aaaaaaaaaa
bbbbbbbbb
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
bbbbbbbbb i i hello suppress automatic printing of pattern space
bbbbbbbbb 这样是错的 -_-! bbbbbbbbb
删除1-5行 sed ‘1,5d’
root@debian:~/test# sed ‘1,5d’ aaa.txt
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
删除”#”开头的行 sed ‘/^#/d’
root@debian:~/test# sed ‘/^#/d’ aaa.txt
112231234
aaaaaaaaaa
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
删除包含有abcdefg的行 sed ‘/[abcdefg]/d’
root@debian:~/test# sed ‘/[abcdefg]/d’ aaa.txt
112231234
j j j
Q QQQQQ
p p
删除abc为开头的行 sed ‘/^[abc]/d’
root@debian:~/test# sed ‘/^[abc]/d’ aaa.txt
112231234
#!/usr/bin
The World
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
删除空白行~ sed ‘/^$/d’
root@debian:~/test# sed ‘/^$/d’ aaa.txt
112231234
#!/usr/bin
aaaaaaaaaa
bbbbbbbbb
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
来看看 -n是啥意思~
-n, –quiet, –silent
这里很好记住的2个选项就是 “d” = 删除; “p” = 打印;
打印出”#” 开头的行
root@debian:~/test# sed ‘/^#/p’ aaa.txt
112231234
#!/usr/bin
#!/usr/bin
aaaaaaaaaa
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
还记得”-n”不
这样才是对的;
root@debian:~/test# sed -n ‘/^#/p’ aaa.txt
#!/usr/bin
删除范围 sed ‘/开始/,/结束/d’
删除 ^1122为开头,”/bin” 为结尾的范围删除,因为要结束为 “/bin” 有个”/” 所以要”\”
root@debian:~/test# sed ‘/^1122/,\/bin$/d’ aaa.txt
aaaaaaaaaa
hello
The World
cccccccc
dddddddddd
i i
j j j
Q QQQQQ
p p
eeeeeeeeee
ffffffffff
gggggggg
打印必须至少有1个g,然后跟着都是gggg的,无论几个,打印出这行
root@debian:~/test# sed -n ‘/^g.*/p’ aaa.txt
gggggggg
删除”1122″为开头,至少1个”p”或连着的”p”为结尾,删除当中这段范围。
root@debian:~/test# sed ‘/^1122/,/^p.*/d’ aaa.txt
eeeeeeeeee
ffffffffff
gggggggg
其实这已经能算是sed的入门了,来跟大家分享这些心得,其实没什么难的,我也是什么都不会,刚刚好看到这么好的文章,嘎嘎~赚了!要相信自己,要有自信!我就是太没自信,认为自己什么都比别人差…
要相信自己,告诉自己,我不认输,我能行!
不知道大家注意到没有,有”-n”又有”d”又有”p”的,其实我是这么记的:
-n 上面说过了,实在记不住就理解为”no” !!! 不要的意思!!
当然 sed -n ‘/^$/p’ filename 不是说不要打印空行,是理解为 打印这些空行,而不删除 ^ ^!
-p 就是print啦 打印,我没查不知道对不对,反正记得住就可以了。
d 就是删除,delete.
把我文章开头写的aaa.txt的文本保存起来,自己练习一下,很快就能入门!!
明天继续学习第二部分~
不懂这东西。
回复: 哦 哦 ~
不错的东西 先收藏下
回复:嗯嗯,一起进步啦~