1.grep -l 過濾包含內(nèi)容的文件名绵脯,只顯示文件名政勃,不顯示內(nèi)容
[root@junnan1 ~]# find /etc/ -type f |xargs grep -l '*.conf'
/etc/fonts/conf.d/README
/etc/libreport/report_event.conf
/etc/rc.d/init.d/functions
/etc/selinux/targeted/active/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.bin
/etc/dracut.conf
/etc/systemd/user.conf
/etc/dbus-1/session.conf
/etc/dbus-1/system.conf
/etc/udev/hwdb.bin
/etc/ld.so.conf
/etc/rsyslog.conf
[root@junnan1 ~]#
注釋:參數(shù)小寫L
2.把過濾出第1行到第5行的內(nèi)容屈留,顯示出來。
[root@junnan1 /oldboy]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@junnan1 /oldboy]#
檢查吊洼,如下
[root@junnan1 /oldboy]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
3.讓sed支持?jǐn)U展正則,-r
[root@junnan1 /oldboy]# sed -rn '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO
[root@junnan1 /oldboy]#
- 檢查训貌,如下
[root@junnan1 /oldboy]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
#4.把從102到105的行過濾出來并顯示,這種用法常用在過濾某個時間段的內(nèi)容冒窍。
[root@junnan1 /oldboy]# sed -n '/102/,/105/p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@junnan1 /oldboy]#
5. 3后面的a是一個命令,該行的意思是在第三行下面插入nihoawoshi UFO
[root@junnan1 /oldboy]# sed '3anihoawoshi UFO' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
nihoawoshi UFO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
[root@junnan1 /oldboy]#
6.知識點-i.bak 意思是在添加內(nèi)容nihoawoshi UFO之前递沪,先備份。
[root@junnan1 /oldboy]# ls
a.txt lidao.txt oldboy.txt oldboy.txt.bak
[root@junnan1 /oldboy]# sed -i.bak '3anihoawoshi UFO' lidao.txt [root@junnan1 /oldboy]# ls
a.txt lidao.txt lidao.txt.bak oldboy.txt oldboy.txt.bak
[root@junnan1 /oldboy]#
7.知識點:命令i和d,命令的意思是刪除空行综液,并真實修改(i)文件款慨,而不只是我們看到的刪除那樣。
[root@junnan1 /oldboy]# cat -n lidao.txt
1 dddd
2 dddd
3 dddff
4
5 dddff
6
7 fff
[root@junnan1 /oldboy]# sed -i '/^$/d' lidao.txt
- 檢查 如下圖:
[root@junnan1 /oldboy]# cat -n lidao.txt
1 dddd
2 dddd
3 dddff
4 dddff
5 fff
[root@junnan1 /oldboy]#
8.刪除空行(^$)
[root@junnan1 /oldboy]# cat -n lidao.txt
1 dddd
2
3 dddd
4 dddff
5 dddff
6 fff
[root@junnan1 /oldboy]# sed -n '/^$/p' lidao.txt
9.知識點 谬莹!檩奠,意思是否,!p就是不顯示
[root@junnan1 /oldboy]# sed -n '/^$/!p' lidao.txt
dddd
dddd
dddff
dddff
fff
[root@junnan1 /oldboy]#
10.不顯示文件/etc/ssh/sshd_config 的空行或以#號開頭的行
sed /etc/ssh/sshd_config/$|!p
sed grep
[root@junnan1 /oldboy]# sed 's#oldboy#UFO#g' oldboy.txt
[root@UFOedu59 /UFO]# cat UFO.txt
I am UFO teacher!
I teach linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://UFO.blog.51cto.com
our size is http://blog.UFOedu.com
my qq is 1351441522
not 4900000448
my god,i am not oldbey,but OLDBOY!
[root@junnan1 /oldboy]#
11.把文件中的oldboy替換成UFO
[root@oldboyedu59 /oldboy]# cat oldboy.txt
I am oldboy 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!
"oldboy.txt" 13L, 294C written
[root@junnan1 /oldboy]# sed 's#oldboy#UFO#' oldboy.txt
- 檢查附帽,如下圖
[root@UFOedu59 /oldboy]# cat oldboy.txt
I am UFO oldboy teacher!
I teach linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://UFO.blog.51cto.com
our size is http://blog.UFOedu.com
my qq is 1351441522
not 4900000448
my god,i am not oldbey,but OLDBOY!
[root@junnan1 /oldboy]#
12. 后向引用,把12346變成<123456>和12<34>56埠戳,<1><2><3><4><5><6>
- 12<34>56
[root@junnan1 /oldboy]# echo 123456 |sed -r 's#(..)(..)(..)#<\2>#g'
<34>
[root@junnan1 /oldboy]#
- <123456>
[root@junnan1 /oldboy]# echo 123456|sed -r 's#(.*)#<\1>#'
<123456>
[root@junnan1 /oldboy]#
[root@junnan1 /oldboy]# echo 123456 |sed -r 's#(.)#<\1>#'
<1>23456
- <1><2><3><4><5><6>
[root@junnan1 /oldboy]# echo 123456 |sed -r 's#(.)#<\1>#g'
<1><2><3><4><5><6>
[root@junnan1 /oldboy]#
注釋:其中的()意思是把管道前面輸出的結(jié)果,放進(jìn)小括號內(nèi)蕉扮,\1表示引用前面第一個空號里面的內(nèi)容整胃,括號內(nèi)可以加正則符號,比如點.