整理部分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
hhh
例:追加多行
[root@localhost ling]# sed '/ccc/a\hhh\nbbb\nvvv' sed.txt
bbb
vvv
i\ ###插入文本
在指定的行或者模式比對的行前面插入
例:指定行前插入多行
[root@localhost ling]# sed '4i\ttt\nmmm' sed.txt
ttt
mmm
例:模式比對的行前插入多行
[root@localhost ling]# sed '/ccc/i\ttt\nmmm' sed.txt
c\ ####修改文本
用輸入的字元串替代指定行或者模式比對行
例:指定行修改文本
[root@localhost ling]# sed '4c\vvvvvvvvvv' sed.txt
vvvvvvvvvv
例:模式比對行修改文本
[root@localhost ling]# sed '/cc/c\vvvvvvvvvv' sed.txt
替換修改文本
源文檔: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檔案:
b檔案:
111
222
333
将b檔案内容插入a檔案的第2行之後,最後a檔案的内容如下:
解決:[root@localhost ling]# sed -i '2r b' a