我想通过使用空字符(NUL、\0、...)来分隔文件路径,就像 find -print0 所做的那样。
我正在使用 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
得到我想要的。我仍然更喜欢一个不那么黑客的解决方案。