내 filename
파일의 내용은 다음과 같습니다 (예 :).
My block of line starts from here
START
First line
second line
third line
END
and end to here for example.
예를 들어와 같이 한 단어 사이 START
와 END
한 단어 로 줄 블록을 바꾸고 싶습니다 SINGLEWORD
. 아래처럼 :
My block of line starts from here
SINGLEWORD
and end to here for example.
이 명령을 사용하여 라인 블록을 찾을 수 있습니다.
grep -Pzo "START(.|\n)*END" filename
위 명령을 실행 한 결과는 다음과 같습니다.
START
First line
second line
third line
END
그런 다음이 명령을 사용하여 모든 줄을 한 줄로 결합했습니다.
LAST_RESULT | sed -e :a -e '/$/N; s/\n/ /; ta'
그런 다음이 결과를 얻습니다.
START First line second line third line END
그리고 마지막 명령으로 LAST_RESULTS | sed 's/.*/SINGLEWORD/'
그것들을 변경 "SINGLEWORD"
하고이 결과를 얻습니다.
SINGLEWORD
이제 내가 원하는 것은 : 어떻게이 명령 (또는 제안 명령)을 사용하고 내 줄 블록을 "SINGLEWORD"단어로 대체 할 수 있습니까? 그리고 최종 결과는 다음 파일과 같습니다.
My block of line starts from here
SINGLEWORD
and end to here for example.
sed
은 가능해야하지만 읽기 어려울 것입니다 (이 질문을보십시오 )