find -print0のようにヌル文字(NUL、\ 0、...)を使用してファイルパスを分割したいと思います。
私はbashを使用しており、成功せず、次のことを試しました。
find $1 -print0 > dircontent
cat dircontent | xargs -0 stat --format="%X %Y %Z %f %u %g %i %h \0%n\0%s" > dirstats
「I」のように見えますが、ヌル文字の代わりにリテラル「\」と「0」があります。
答え1
--format
パーセントエスケープのみが解析され、最後に改行文字が追加されます。--printf
バックスラッシュエスケープも解析され、末尾の改行は追加されません。
<dircontent xargs -0 stat --printf="%X %Y %Z %f %u %g %i %h \0%n\0%s\0" > dirstats
答え2
私はそれを//
区切り記号として使用し、必要なものsed -in 's/\/\//\x0/g' dirstats
を取得します。私はまだハッキングの少ないソリューションを好む。