저는 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