다음 코드는 어떻게 하나의 파일만 인쇄할 수 있습니까?
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 awk
및 mawk
(버전 1.3.4 이상) 만 \0
"널 문자"를 의미하는 레코드 구분 기호로 사용할 수 있습니다. mawk
, BSD awk
, Busybox awk
, Plan 9 등의 이전 버전에서는 모두 문자열을 awk
빈 문자열로 처리합니다. 즉, "단락 모드"(2개 이상의 연속 개행으로 구분된 레코드)를 활성화합니다.\0
RS
RS