Words on
many line
%
More Words
on many lines
%
Even More Words
on many lines
%
같은 설정 파일을하고 난 레코드가 각 후 %
로 구분되는이 파일의 기록을 지속 할 두 번째 출력하고 싶습니다 텍스트 블록.
은 내가 사용하고 있습니다 :
awk -v RS=\% ' END{ print NR }' $f
레코드의 수 (1136)를 찾을 수 있습니다. 그럼 난
awk -v RS=\% ' { print $(NR-1) }' $f
및
awk -v RS=\% ' { print $(NR=1135) }' $f
했다. 이들 중 어느 것도 작동하지 않고 대신 파일의 시작 부분과 빈 줄이 표시됩니다. 출력 :
"You know, of course, that the Tasmanians, who never committed adultery, are
now extinct."
-- M. Somerset Maugham
"The
is
what
that
이 출력이 많은, 더 많은 빈 줄이 있고 파일의 중간에 가까운 기록을 포함한다.
awk -v RS=\% 'END{ print $(NR-1) }' $f
은 빈 줄을 반환합니다. $(NR-x)
값이 다른 동일한 명령도 공 i 행을 리턴합니다.
이 경우 마지막 기록에서 두 번째 기록까지 누가 도와 줄 수 있습니까? 감사합니다.
'$ n'은 _field_을 선택합니다; _record_ (보통은 여기선이 아님)을 선택하려면 하나의 파일이나 결합 된 파일에 대해서는'awk -vRS = % 'NR == 1135'', 여러 파일들에 대해서는'FNR'을 사용하십시오. 'awk -vRS = % 'FNR == NR {sel = NR-1} FNR == sel'filename filename'과 같이 한 번에 두 패스를 모두 수행 할 수 있습니다. 그러나 두 개의 막대기로 @ dawg의 한 패스를 더 잘 사용하십시오. –