패턴 사이의 줄 수를 계산하고 파일의 줄 수를 리디렉션하는 방법은 무엇입니까?
예:
PATTERN FOUND
rows
rows
rows
PATTERN FOUND
rows
rows
예상되는 결과는 다음과 같습니다.
3
2
답변1
사용 awk
:
$ awk -v RS='PATTERN FOUND' 'NF{print NF}' infile
3
2
또는 rows
실제로 문장 세트가 있는 경우 다음과 같이 할 수 있습니다.
$ awk -v RS='PATTERN FOUND' -F'\n' 'NF{print NF-2}' infile >output
위는 awk
다음 샘플 입력 파일입니다.
PATTERN FOUND
rows
rows
rows
PATTERN FOUND
rows
rows
Here PATTERN FOUND :
zero first
second
fourth fifth sixth and last
결과는 다음과 같습니다.
3
2
4
빈 줄을 제거하고 계산하지 않으려면 다음을 수행하세요.
awk -v RS='PATTERN FOUND' -F'(\n)+' 'NF{print NF-2}' infile
빈 줄과 공백만 포함된 줄(탭 또는 공백)을 제거합니다.
awk -v RS='PATTERN FOUND' -F'(\n|^[ \t]*$)+' 'NF{print NF-2}' infile