veh*_*zzz 74 scripting awk sed
我需要编辑大量文件,方法是在唯一模式正下方或其上方插入(2)行.请告诉如何使用sed,awk,perl或shell中的任何其他内容.谢谢
some text
lorem ipsum dolor sit amet
more text
Run Code Online (Sandbox Code Playgroud)
我想在'你好我的爱,你是个肮脏的女孩'之后插入'我知道,我是,我的性感骑士',所以输出文件看起来像
some text
lorem ipsum dolor sit amet
consectetur adipiscing elit
more text
Run Code Online (Sandbox Code Playgroud)
Kam*_*mal 148
要在模式后追加:( -i用于替换).line1和line2是你想要追加(或前置)的行
sed -i '/pattern/a \
line1 \
line2' inputfile
Run Code Online (Sandbox Code Playgroud)
输出:
#cat inputfile
pattern
line1 line2
Run Code Online (Sandbox Code Playgroud)
要在之前添加行:
sed -i '/pattern/i \
line1 \
line2' inputfile
Run Code Online (Sandbox Code Playgroud)
输出:
#cat inputfile
line1 line2
pattern
Run Code Online (Sandbox Code Playgroud)
jah*_*roy 35
以下添加一行SearchPattern.
sed -i '/SearchPattern/aNew Text' SomeFile.txt
它New Text在包含的每一行下面插入一行SearchPattern.
要添加两行,您可以使用a \并在键入时输入换行符New Text.
POSIX sed \在ased函数之后需要a 和换行符.[1]指定要在没有换行符的情况下追加的文本是GNU sed扩展(如sed信息页面中所述),因此其用法不是可移植的.
[1] https://unix.stackexchange.com/questions/52131/sed-on-osx-insert-at-a-certain-line/
小智 6
使用起来更便携;某些系统不支持 sed 中的 \n
printf "/^lorem ipsum dolor sit amet/a\nconsectetur adipiscing elit\n.\nw\nq\n" |\
/bin/ed $filename
Run Code Online (Sandbox Code Playgroud)
在你的节中给定的诗句之后插入一个新的诗句:
sed -i '/^lorem ipsum dolor sit amet$/ s:$:\nconsectetur adipiscing elit:' FILE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175042 次 |
| 最近记录: |