小白入門之十三:sed命令實(shí)現(xiàn)文本處
目的
熟練使用sed命令完成文本處理。
sed命令功能:sed是一個(gè)流編輯器,實(shí)現(xiàn)文本的過濾和轉(zhuǎn)化。
前提
可用的centos7系統(tǒng),連接網(wǎng)絡(luò)。
命令介紹
【例1】利用sed 取出ifconfig ens33命令中本機(jī)的IPv4地址
[root@Magedu ~]# ifconfig ens33 |sed -r '2!d; s@(.*inet )(.*)( netmask.*)@\2@'
172.18.118.155
【例2】刪除/etc/fstab文件中所有以#開頭,后面至少跟一個(gè)空白字符的行的行首的#和空白字符
[root@Magedu ~]# sed -r 's/^#[[:blank:]]+//'g /etc/fstab
【例3】把/etc/httpd/conf/httpd.conf文件內(nèi)的Linsten 80改為Listen 8081
[root@Magedu ~]# sed -i 's/Listen 80/Listen 8081/' /etc/httpd/conf/httpd.conf
【例4】把pets文件中所有的dog修改為cat
[root@magedu ~]# cat pets
1 dog
2 cat
3 dog
4 cat
[root@magedu ~]# cat pets|sed 's/dog/cat/g'
1 cat
2 cat
3 cat
4 cat
[root@magedu ~]# cat pets
1 dog
2 cat
3 dog
4 cat
注意:此處的修改僅是顯示在屏幕輸出了,實(shí)際文件內(nèi)容并沒有修改。
【例5】刪除pets文件中的第2行
[root@magedu ~]# cat pets|sed '2d'
1 dog
3 dog
4 cat
【例6】僅顯示pets文件的第2行
[root@magedu ~]# sed -n '2p' pets
2 cat
【例7】把pets文件的第2行顯示2遍
[root@magedu ~]# sed '2p' pets
1 dog
2 cat
2 cat
3 dog
4 cat
【例8】顯示pets文件的最后1行
[root@magedu ~]# sed -n '$p' pets
4 cat
【例9】顯示pets文件中包含dog字符串的所有的行
[root@magedu ~]# sed -n '/dog/p' pets
1 dog
3 dog
【例10】顯示pets文件中,包含2或4的行之間的所有行
[root@magedu ~]# sed -n '/2/,/4/p' pets
2 cat
3 dog
4 cat
【例11】顯示pets文件中,第1行到第3行之間的所有行
[root@magedu ~]# sed -n '1,3p' pets
1 dog
2 cat
3 dog
【例12】顯示pets文件中第2行及后面的1行
[root@magedu ~]# sed -n '2,+1p' pets
2 cat
3 dog
【例13】顯示pets文件中第1行和dog字符串之間的行
[root@magedu ~]# sed -n '1,/dog/p' pets
1 dog
2 cat
3 dog
【例14】顯示pets文件的奇數(shù)行
[root@magedu ~]# sed -n '1~2p' pets
1 dog
3 dog
【例15】顯示pets文件的奇數(shù)行
[root@magedu ~]# sed -n '2~2p' pets
2 cat
4 cat
【例16】在pets文件的第2行的下一行添加hello
[root@magedu ~]# sed '2ahello' pets
1 dog
2 cat
hello
3 dog
4 cat
【例17】在pets文件的第2行的下一行添加2行內(nèi)容為helo和world
[root@magedu ~]# sed '2a\hello\nworld' pets
1 dog
2 cat
hello
world
3 dog
4 cat
【例18】在pets文件的第2行的前一行添加2行內(nèi)容為helo和world
[root@magedu ~]# sed '2i\hello\nworld' pets
1 dog
hello
world
2 cat
3 dog
4 cat
【例19】把pets文件的第2行替換為hello
[root@magedu ~]# sed '2c\hello' pets
1 dog
hello
3 dog
4 cat
【例20】把pets文件的第1-3行內(nèi)容,另存為test.txt文件
[root@magedu ~]# cat pets |sed '1,3w test.txt'
1 dog
2 cat
3 dog
4 cat
[root@magedu ~]# cat test.txt
1 dog
2 cat
3 dog
【例21】在第2行后讀入test.txt文件
[root@magedu ~]# seq 1 5|sed '2r test.txt'
1
2
1 dog
2 cat
3 dog
3
4
5
【例22】不顯示第2行
[root@magedu ~]# seq 1 5|sed -n '2!p'
1
3
4
5
【例23】把pets文件中的每行內(nèi)容前都編序號顯示
[root@magedu ~]# sed "=" pets
1
1 dog
2
2 cat
3
3 dog
4
4 cat
文章來源于
網(wǎng)絡(luò),侵刪!