进行目录的字数统计。
ls | wc -l
如果输出为“ 17”,我希望输出显示为“ 017”。
我玩过| 运气不好的printf。任何建议,将不胜感激。
ls | wc -l
会告诉您解析的输出ls
时遇到了多少行,这可能与目录中(非点)文件名的数量不同。如果文件名包含换行符怎么办?获取目录中文件数量的一种可靠方法是
x=(*)
printf '%03d\n' "${#x[@]}"
但这仅适用于支持数组的外壳。如果要使用POSIX兼容方法,请使用shell函数:
countargs() { printf '%03d\n' $#; }
countargs *
之所以起作用,是因为当全局扩展时,无论文件名中的字符如何,shell都将在全局扩展的每个成员中保留单词。但是,当您通过管道传输文件名时,管道另一侧的命令无法告诉它除普通字符串以外的任何内容,因此它无法进行任何特殊处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句