例如:
stat --format="%s %W %Y %X %Z %n//" * | sed "s/\/\/$/\x0/"
是错误的,因为它仍然发出换行符。
3mpgtkmj1#
不需要在事后进行替换;使用--printf而不是--format,这样就不会在第一个地方得到换行符,所以可以请求所需的输出格式:
--printf
--format
stat --printf='%s %W %Y %X %Z %n\0' *
但是,如果您的stat版本不支持此功能,或者您的真实的程序与此不同,您可能会考虑...
stat
while IFS= read -r result; do if [[ $result = *// ]]; then printf '%s\0' "${result%//}" else printf '%s\n' "$result" fi done < <(stat --format="%s %W %Y %X %Z %n//" *)
1条答案
按热度按时间3mpgtkmj1#
不需要在事后进行替换;使用
--printf
而不是--format
,这样就不会在第一个地方得到换行符,所以可以请求所需的输出格式:但是,如果您的
stat
版本不支持此功能,或者您的真实的程序与此不同,您可能会考虑...