我使用下面的命令搜索模式(Rel_Tag_St_bit),然后在文件中追加以下行:
sed -i -e '/Rel_Tag_St_bit/a\'一旦添加了这一行,我就需要换行符,因为我看到在同一行中新添加的行后面追加的下一行。样本输入:Line1 (pattern match)managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
Line 2 (append ) methods.mavenWithGoals("mvn so:s -f abc/pom.xml") methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
Line 3 (appears on second line itself) 因此,这里的第三行出现在第二个附加行上。样本输出:1)managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
2)methods.mavenWithGoals("mvn so:s -f abc/pom.xml")
3)methods.mavenWithGoals("deploy -DaltDeploymentRepository=) \n''\ methods.mavenWithGoals("mvn so:s -f abc/pom.xml")' file
一旦添加了这一行,我就需要换行符,因为我看到在同一行中新添加的行后面追加的下一行。
样本输入:
A1
因此,这里的第三行出现在第二个附加行上。
样本输出:
A2
发布于 2019-06-19 10:12:14
假设您的原始文件包含:
$ cat file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
您可以通过以下方式修改它:
$ sed -e '/Rel_Tag_St_bit/a\'这是使用shell (bash、ksh、zsh) C字符串引入新行。\nmethods.mavenWithGoals("mvn so:s -f abc/pom.xml")\n' file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("mvn so:s -f abc/pom.xml")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
这是使用shell (bash、ksh、zsh) C字符串D2引入新行。
...'
引入新行。\nmethods.mavenWithGoals("mvn so:s -f abc/pom.xml")\n' file managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt") methods.mavenWithGoals("mvn so:s -f abc/pom.xml") methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
这是使用shell (bash、ksh、zsh) C字符串D2
引入新行。
发布于 2019-06-20 03:03:06
$ sed -i -e '/Rel_Tag_St_bit/G;s/\n/&methods.mavenWithGoals("mvn so:s -f abc/pom.xml")/' file
在这里,在所需的行G
的末尾添加一个换行符/Rel_Tag_St_bit/
,然后将所需的文本放在您刚刚添加的用G
命令添加的换行符之后。由于换行符是有条件地添加的,所以s///
命令不会对不感兴趣的行触发,而sed
将允许它们按原样传递。
https://unix.stackexchange.com/questions/525863
复制