파일의 줄 끝에 문자열을 추가하는 방법: 3자 앞에도 추가할 수 있습니다.
시도했지만 결국 문자열 끝에 추가되었습니다. 누구든지 나를 도와줄 수 있나요?
예: I/P:
file1.txt
콘텐츠:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd]).
나는 사용하려고
sed -i '/rules/ s/$/ ***/' file1.txt
산출:
rules('test',[abc,bcd]). ***
그러나 선호되는 o/p:
rules('test',[abc,bcd,***]).
규칙과 일치하는 두 개의 행이 있지만 두 번째 행에 나타나도록 해야 합니다. 이것을 시도했습니다.
sed '/rules/ s/\(...\)$/ ,***\1/'
하지만 작동하지 않습니다
답변1
이것은 작동합니다:
sed -E '/rules/ s/(]\)\.)$/,***\1/' file1.txt
입력하다:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd]).
산출:
a
bbbb
vvvvv
cccccc
dd
rules('example here i dont need to get added')
rules('test', [abc,bcd,***]).
이렇게 하면 stdout에서 출력을 얻을 수 있습니다. 파일을 수정하려면 -i
다음 옵션을 추가하세요.
sed -i -E '/rules/ s/(]\)\.)$/,***\1/' file1.txt
답변2
노력하다
'/rules/ s/\(\]..\)$/,***\1/'
대체 패턴으로.
어디
\(
...\)
"grep"의 패턴\1
\]..
패턴은 닫는 대괄호(이스케이프해야 하는지 확실하지 않음)와 임의의 두 문자입니다.,***\1
앞에 별표와 쉼표를 붙입니다.