整理部分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