Program Tip

sed를 사용하여 패턴 위 또는 아래에 선을 삽입 하시겠습니까?

programtip 2020. 10. 28. 20:33
반응형

sed를 사용하여 패턴 위 또는 아래에 선을 삽입 하시겠습니까?


고유 한 패턴 바로 아래 또는 그 위에 한 줄 또는 여러 줄을 삽입하여 많은 수의 파일을 편집해야합니다. 그 사용하여이 작업을 수행하는 방법에 알려 주시기 바랍니다 sed, awk, perl쉘에서 (또는 다른 것). 감사! 예:

some text
lorem ipsum dolor sit amet
more text

consectetur adipiscing elit뒤에 삽입하고 싶으 lorem ipsum dolor sit amet므로 출력 파일은 다음과 같습니다.

some text
lorem ipsum dolor sit amet
consectetur adipiscing elit
more text

패턴 뒤에 추가하려면 : (-i는 현재 위치 바꾸기입니다). line1 및 line2는 추가 (또는 앞에 추가) 할 줄입니다.

sed -i '/pattern/a \
line1 \
line2' inputfile

산출:

#cat inputfile
 pattern
 line1 line2 

앞에 줄을 추가하려면 :

sed -i '/pattern/i \
line1 \
line2' inputfile

산출:

#cat inputfile
 line1 line2 
 pattern

다음은 뒤에 한 줄을 추가합니다 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/


스탠자에서 주어진 구절 뒤에 새 구절을 삽입하십시오.

sed -i '/^lorem ipsum dolor sit amet$/ s:$:\nconsectetur adipiscing elit:' FILE

ed를 사용하기 위해 더 휴대 가능합니다. 일부 시스템은 sed에서 \ n을 지원하지 않습니다.

printf "/^lorem ipsum dolor sit amet/a\nconsectetur adipiscing elit\n.\nw\nq\n" |\
    /bin/ed $filename

참고 URL : https://stackoverflow.com/questions/11694980/using-sed-insert-a-line-above-or-below-the-pattern

반응형