在bash中循环一行命令

在bash中循环一行命令,bash,loops,Bash,Loops,如何循环这一行将所有jpg打印到文本文件 stat --printf="%s" *.jpg >> results.txt 如何根据文件大小打印results.txt??代码看起来怎么样??文件的确切大小为40318您已经在打印所有*.jpg文件的结果。唯一的问题是,通过使用--printf=“%s”您将stat的输出格式更改为仅打印大小(每个项目之间没有换行符或空格) 请尝试: stat --printf="%s\n" *.jpg >> results.txt # O

如何循环这一行将所有jpg打印到文本文件

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

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


请注意,脚本将从使用find指定的目录中递归搜索。请更详细地描述您试图实现的目标,很难说出您试图循环的目标。另外,请发布您到目前为止尝试的内容。我需要将文件名和文件大小打印为.txt文件。我需要弄清楚如何使它在目录中显示。恐怕还不清楚你想要什么。是否要打印出所有.jpg文件的大小?还是只有40318码的?另外,您是否只对特定目录中的jpg文件感兴趣,或者对子目录中的jpg文件感兴趣?假设您想要的与我在那里发布的答案有关。那么,如果我只想根据大小打印文件名,这是否正确$filesize=123456 stat--printf=“%s$filesize\n”*.jpg>>results.txtNo。“--printf”仅控制打印输出的方式。您不能使用它来过滤输出。您将需要使用不同的命令,或者使用循环和
if
语句来过滤
stat
的输出。是否可以根据文件大小声明变量,并且如果您知道该变量的大小,是否可以在if语句之前写入?是的,这都是可能的。如果您编辑您的问题以包含您试图实现的目标的更多细节,我们可能会帮助您。@好奇的请将细节编辑到您的问题中,而不是在答案中。
    find . -name "*.jpg" | xargs ls -ahl $1 | awk '{print $5" "$9}' > results.txt