次のコードはどのように1つのファイルしか印刷できませんか?
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
GNUawk
とmawk
(バージョン 1.3.4 以降) のみが\0
「ヌル文字」を意味するレコード区切り文字として使用できます。mawk
、BSD awk
、Busybox awk
、Plan 9などの以前のバージョンでは、すべて文字列をawk
空の文字列として扱いました。つまり、「短絡モード」(2つ以上の連続改行で区切られたレコード)を有効にします。\0
RS
RS