유닉스 파일에서 단락 처리하기

유닉스 파일에서 단락 처리하기

저는 Linux에서 세 개의 단락이 포함된 텍스트 파일을 만들었습니다. 이제 파일 내용을 표시하면서 결과에 각 단락의 줄 번호를 표시하고 싶습니다.

내 파일의 내용은 다음과 같습니다.

      다음은 백과사전을 탐색하는 데 도움이 되는 콘텐츠 탐색 시스템입니다. 검색의 대안으로 사용됩니다.

      다음은 백과사전을 탐색하는 데 도움이 되는 콘텐츠 탐색 시스템입니다. 검색의 대안으로 사용됩니다.

      다음은 백과사전을 탐색하는 데 도움이 되는 콘텐츠 탐색 시스템입니다. 검색의 대안으로 사용됩니다.

이제 결과를 다음과 같이 인쇄하고 싶습니다.

1 다음은 내용입니다... (첫 번째 문단)

2 다음은... (두 번째 문단) 등입니다.

파일의 각 단락에는 줄 간격이 있습니다.

또한 위 파일의 마지막 단락만 인쇄하려면 다른 명령을 사용해야 합니다.

나는 우분투를 사용하고 있습니다.

답변1

진주,단락 모드 -00, 입력 줄 -p과 숫자가 포함된 사용자 지정 접두사를 인쇄합니다.

% (echo hi; echo; echo there) | perl -00 -pe 'print ++$x, " "'

마지막 단락은

% (echo hi; echo; echo there) | perl -00 -ne '$l=$_; END { print $l }'

답변2

이를 사용하여 awk단락 번호를 추가할 수 있습니다. 파일이 호출되었다고 가정하면 input다음을 수행할 수 있습니다.

awk 'BEGIN {para=1} !/^\s*$/ {printf "%d %s\n", para, $0; para+=1;next};1' input

이는 우리가 본 단락 수의 카운터를 유지하며 비어 있지 않은 줄이 나타날 때마다 현재 카운터를 앞에 추가한 다음 카운터를 증가시킵니다.

마지막 단락을 얻으려면 끝에 원하지 않는 빈 줄이 있을 수 있다고 가정하고 awk를 유사하게 사용할 수 있습니다.

awk '!/^\s*$/ {line=$0} END{print line}' input

관련 정보