| |||
预览:
1 | sed -i '/aaa/{n;n;n;s|$|\n新添加的行|p}' 3hang_addline.txt |
应用:
1 | sed -i '/aaa/{n;n;n;s|$|\n新添加的行|}' 3hang_addline.txt |
解释:
n;n;n;就是从匹配的aaa往下走三行,到位后,将行尾添加换行符——新增一行,\n后面就是新行的内容。
|p 是可以插入2次;
如果我要在匹配到aaa后的1000行添加新行,难道要打1000次“n;”吗?
我的回答是,如果数字很大,可用以下方式。
示例:
set num = `grep 'aaa' 3hang_addline.txt -n | awk -F ":" '{print $1}' `
set n == `expr $num + 3`
sed -i $n's|$|\n你要添加的行|' 3hang_addline.txt
1 | num=` sed -n -e '/aaa/=' 3hang_addline.txt`; sed -n $((num+3)) 's|$|\n你要添加的行|p' 3hang_addline.txt |
应用:
1 | num=` sed -n -e '/aaa/=' 3hang_addline.txt`; sed -i $((num+3)) 's|$|\n你要添加的行|' 3hang_addline.txt |