파일이 있습니다 fruits
.
ap ple
ora nge
pe ar
gra pes
bro ccoli
tom ato
ap ache
파일에 몇 개의 과일이 있는지 확인하기 위해 awk 스크립트를 만들고 싶습니다.
나는 열심히 노력했다
awk -F: '/ap|ora|pe|gra ple|nge|ar|pes/ {sum+=1} END {print sum+0}' fruits
4개의 쌍이 정확히 일치하므로 4를 반환해야 하지만 ap ache
이 경우 공간이 등록되지 않았기 때문에 5를 반환하는 것 같습니다.
답변1
정규식 ap|ora|pe|gra ple|nge|ar|pes
일치
ap
또는 ora
또는pe
또는 gra ple
또는 nge
또는 ar
또는pes
사이에 공백이 있는 두 개의 별도 대안을 일치시키려면 일부 그룹화를 추가해야 합니다.
$ awk '/(ap|ora|pe|gra) (ple|nge|ar|pes)/' fruits
ap ple
ora nge
pe ar
gra pes
$ awk '/(ap|ora|pe|gra) (ple|nge|ar|pes)/ {sum+=1} END{print sum}' fruits
4
기본값이 전체 레코드와 일치하므로 -F
공백이 아닌 값으로 설정할 필요가 없습니다 ./pattern/