在bash中循环一个行命令

时间:2012-09-14 14:26:16

标签: bash loops

如何循环此行以将所有jpg打印到文本文件?

stat --printf="%s" *.jpg >> results.txt

你怎么能根据文件大小打印results.txt?代码怎么样?文件的确切大小为40318

2 个答案:

答案 0 :(得分:2)

您已经在打印所有* .jpg文件的结果。唯一的问题是,通过使用--printf="%s",您正在更改stat的输出格式,以仅打印大小(每个项目之间没有换行符或空格)。

尝试改为:

stat --printf="%s\n" *.jpg >> results.txt
#  OR
stat -c "%s" *.jpg >> results.txt

要打印尺寸旁边的文件名,请尝试:

stat --printf="%n %s\n" *.jpg >> results.txt
# OR
stat -c "%n %s" *.jpg >> results.txt

答案 1 :(得分:0)

据我了解,您希望将所有.jpg文件的大小和文件名打印到文本文件中。您可以使用 find ls 的组合执行此操作,然后使用 awk 格式化输出:

    find . -name "*.jpg" | xargs ls -ahl $1 | awk '{print $5" "$9}' > results.txt

请注意,脚本将从您使用 find

指定的目录中递归搜索