sed 또는 awk에서 여러 줄 바꾸기 [닫기]


9

sed 또는 awk를 사용하여 smb 파일에서 5 줄을 바꾸려고하지만 줄 바꿈을 처리하는 방법을 전혀 모릅니다.


6
f sed와 awk 가이 작업을 수행 할 수는 있지만 귀하의 질문이 무엇인지 정확히 이해하는 데 약간의 문제가 있습니다. 정확히 무엇이 문제의 원인입니까? 줄 바꿈을 삽입 하시겠습니까? 그것들을 교체 하시겠습니까?
frabjous

답변:


19

Sed는 한 번에 한 줄씩 작동하기 때문에 이것에 상당히 나쁩니다. 내가이 일을 본 적이 유일한 괜찮은 기술이다 이 한 번에 모두에서 작동하는 다음의 나오지 홀드 버퍼에 전체 파일을 저장하고 포함한다 :

sed -n '1h;1!H;${g;s/search/replace/;p;}'

가능하다면 펄을 사용하여 훨씬 쉽게 수행 할 수 있습니다.

perl -0pe 's/search/replace/'

search\n개행을 나타내는 s를 포함 할 수있다


1
sed멀티 라이너의 경우 +1
Lazer

펄에 대한 명령 행 인수가 무엇을 설명 할 수 있습니까?
Michael

1
@Michael -0은 레코드 구분 기호를 null로 설정하므로 전체 파일을 한 줄씩 읽지 않고 한 번에 읽습니다. -p대체 후 결과를 인쇄합니다. -e다음 표현을 실행할 표현으로 받아 들여야합니다. 그리고 s/search/replace/그 표현입니다
Michael Mrozek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.