学习_通用线程sed_笔记
在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
删除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
- bbbbbbbbb
- 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
- i i
- j j j
- Q QQQQQ
- p p
删除abc为开头的行 sed ‘/^[abc]/d’
- root@debian:~/test# sed '/^[abc]/d' aaa.txt
- 112231234
- #!/usr/bin
- hello
- 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
- suppress automatic printing of pattern space
这里很好记住的2个选项就是 “d” = 删除; “p” = 打印;
打印出”#” 开头的行
- root@debian:~/test# sed '/^#/p' aaa.txt
- 112231234
- #!/usr/bin
- #!/usr/bin
- aaaaaaaaaa
- bbbbbbbbb
- 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
- bbbbbbbbb
- 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的文本保存起来,自己练习一下,很快就能入门!!
明天继续学习第二部分~
不懂这东西。
回复: 哦 哦 ~
不错的东西 先收藏下
回复:嗯嗯,一起进步啦~