我该如何循环这一行来将所有jpg文件打印到文本文件?在bash中循环一行命令
stat --printf="%s" *.jpg >> results.txt
你会如何还能够打印RESULTS.TXT根据文件的大小?代码将如何显示?文件的确切大小是40318
我该如何循环这一行来将所有jpg文件打印到文本文件?在bash中循环一行命令
stat --printf="%s" *.jpg >> results.txt
你会如何还能够打印RESULTS.TXT根据文件的大小?代码将如何显示?文件的确切大小是40318
您已经在打印所有* .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
所以,如果我只想打印一个基于大小的文件名这将是正确的? $ filesize = 123456 stat --printf =“%s $ filesize \ n”* .jpg >> results.txt –
编号“--printf”仅控制您如何打印输出。你不能用它来过滤输出。您将需要使用不同的命令,或者使用循环和'if'语句来过滤'stat'的输出。 –
你可以根据文件的大小声明一个变量吗?如果你知道它的大小可以写在if语句之前? –
这是我的理解是要打印所有.JPG的大小和文件名文件转换为文本文件。为此,您可以用组合找到,LS,然后用AWK格式化输出:
find . -name "*.jpg" | xargs ls -ahl $1 | awk '{print $5" "$9}' > results.txt
请注意,该脚本将递归搜索从目录中,你与指定找到
请描述你想要更详细地实现什么,很难说出你想要循环的东西。此外,请发布您到目前为止所尝试的内容。 – Mat
我需要将文件名和文件大小打印到.txt文件。我需要弄清楚如何让它看起来在目录中。 –
恐怕目前还不清楚你想要什么。你想打印出所有.jpg文件的大小吗?或者只有尺寸为40318的那些?另外,您是否只对特定目录或子目录中的jpg文件感兴趣? –