sed的行追加(模式前后)和行替换
有时候我们要将一句话插入到一个文件中,也许你就想到了echo >> ,但是这是追加到文件的末尾,我要是追加到其中的某一行之前或之后呢,sed可以实现
1# cat a.txt
21234569
3abcABCabc
1、怎么样用一行或者多行替换一行
sed的替换模式,s/xx/oo/这个可以实现我们的进行行替换的要求,那就是将要替换的内容换成xx,当前行替换需要用到c参数:
1# sed -e '/123/c\hello' a.txt
2hello
3abcABCabc
c\它俩之间可是紧挨着的,要是替换的行很长,一行写不开呢,那就再加一个”\”:
1# sed -e '/123/ c\hellosologg\so long' a.txt
2hellosolonggso long
3abcABCabc
要是增加两行呢?哪就加个\n
1# sed -e ‘/123/ c\solongg\nso long’ a.txt
2solongg
3so long
4abcABCabc
2、怎么样在一行或多行之前,之后增加一行或多行
sed 可以在匹配的模式之前(i)或之后(a)增加一行或多行;在匹配的模式之前(i):
1# sed -e ‘/123/ i\solongg’ a.txt
2solongg
31234569
4abcABCabc
增加两行
1# sed -e ‘/123/ i\solongg\nso long’ a.txt
2solongg
3so long
41234569
5abcABCabc
在匹配的模式之后(a)
1# sed -e ‘/123/ a\solongg’ a.txt
21234569
3solongg
4abcABCabc
增加两行:
1# sed -e ‘/123/ a\solongg\nso long’ a.txt
21234569
3solonggg
4so long
5abcABCabc
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/sed-search-replace/4794.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.