빈 레코드 구분 기호가 있는 awk는 하나의 파일만 인쇄합니다.

빈 레코드 구분 기호가 있는 awk는 하나의 파일만 인쇄합니다.

다음 코드는 어떻게 하나의 파일만 인쇄할 수 있습니까?

find "$fdir" -type f -name "${fnam}-*.png" -print0 | awk -v RS='\0' -F'[-.]' '{print $(NF-1), $0}' | cat -vet

이것은 나에게 준다

04 /home/flora/edvart/docs/schimmel-04.png$

하지만 find "$fdir" -type f -name "${fnam}-*.png"

/home/flora/edvart/docs/schimmel-04.png
/home/flora/edvart/docs/schimmel-05.png
/home/flora/edvart/docs/schimmel-06.png
/home/flora/edvart/docs/schimmel-07.png
/home/flora/edvart/docs/schimmel-08.png
/home/flora/edvart/docs/schimmel-09.png
/home/flora/edvart/docs/schimmel-10.png
/home/flora/edvart/docs/schimmel-11.png
/home/flora/edvart/docs/schimmel-12.png
/home/flora/edvart/docs/schimmel-13.png
/home/flora/edvart/docs/schimmel-1.png
/home/flora/edvart/docs/schimmel-2.png
/home/flora/edvart/docs/schimmel-3.png

답변1

GNU awkmawk(버전 1.3.4 이상) 만 \0"널 문자"를 의미하는 레코드 구분 기호로 사용할 수 있습니다. mawk, BSD awk, Busybox awk, Plan 9 등의 이전 버전에서는 모두 문자열을 awk빈 문자열로 처리합니다. 즉, "단락 모드"(2개 이상의 연속 개행으로 구분된 레코드)를 활성화합니다.\0RSRS

관련 정보