sed

整理部分sed用法:

[root@localhost ling]# sed --version
GNU sed version 4.1.2

原始文檔sed.txt

hello
ok
aaa
ccc

 

a\    ###追加文本

默認情況下,對於添加一行a\後面的“\”符號可以自動換行,如果需要添加多行,則在添加第一行內容後用\n

例:追加單行

[root@localhost ling]# sed '/ccc/a\hhh' sed.txt
hello
ok
aaa
ccc
hhh

例:追加多行

[root@localhost ling]# sed '/ccc/a\hhh\nbbb\nvvv' sed.txt
hello
ok
aaa
ccc
hhh
bbb
vvv

 

i\    ###插入文本

在指定的行或者模式匹配的行前面插入

例:指定行前插入多行

[root@localhost ling]# sed '4i\ttt\nmmm' sed.txt
hello
ok
aaa
ttt
mmm
ccc

例:模式匹配的行前插入多行

[root@localhost ling]# sed '/ccc/i\ttt\nmmm' sed.txt
hello
ok
aaa
ttt
mmm
ccc

 

c\    ####修改文本

用輸入的字符串替代指定行或者模式匹配行

例:指定行修改文本

[root@localhost ling]# sed '4c\vvvvvvvvvv' sed.txt
hello
ok
aaa
vvvvvvvvvv

例:模式匹配行修改文本

[root@localhost ling]# sed '/cc/c\vvvvvvvvvv' sed.txt
hello
ok
aaa
vvvvvvvvvv

 

替換修改文本

源文檔:c

AC456
AC492169
AC9967
AC88345

例:在每行後添加字符Passed

[root@localhost ling]# sed 's/[0-9][0-9]*/& Passed/' c
AC456 Passed
AC492169 Passed
AC9967 Passed
AC88345 Passed

例:在每行前添加字符串Passed

[root@localhost ling]# sed 's/AC/Passed &/' c
Passed AC456
Passed AC492169
Passed AC9967
Passed AC88345

 

從另一個文件內讀取文件 r

 

百度面試題:

a文件:

aaa
bbb
ccc

b文件:

111
222
333

將b文件內容插入a文件的第2行之後,最後a文件的內容如下:

aaa

bbb

111

222

333

ccc

 

解決:[root@localhost ling]# sed -i '2r b' a

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章