다음 명령을 사용하여 패턴(Rel_Tag_St_bit)을 검색한 후 파일에 다음 줄을 추가했습니다.
sed -i -e '/Rel_Tag_St_bit/a\'$'\n''\ methods.mavenWithGoals("mvn so:s -f abc/pom.xml")' file
이 줄을 추가한 후에는 같은 줄에 새로 추가된 줄 뒤에 다음 줄이 추가되기 때문에 줄 바꿈이 필요합니다.
입력 예:
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)
따라서 여기서 세 번째 줄 [methods.mavenWithGoals("deploy -DaltDeploymentRepository=)] 은 두 번째 추가 줄에 나타납니다.
예제 출력:
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=)
답변1
원본 파일에 다음이 포함되어 있다고 가정합니다.
$ cat file
managedScripts.Rel_Tag_St_bit("${env.templo_directory}/version.txt")
methods.mavenWithGoals("deploy -DaltDeploymentRepository=)
다음을 사용하여 수정할 수 있습니다.
$ sed -e '/Rel_Tag_St_bit/a\'$'\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=)
즉, 쉘(bash, ksh, zsh) C 문자열을 사용하여 $'...'
개행을 도입합니다.
답변2
$ 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
그대로 전달됩니다.