天天看点

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

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