我是Linux的新手,我一直在尝试运行一个脚本,使用ImageMagick convert
来处理文件夹中的所有文件(我宁愿执行此任务) Shell比使用mogrify
,因为据我所知,它不会保存不同的文件)。这些文件必须在最后一次修改后处理。订单,所以我使用了这段代码:
for file in `ls -1tr {*.jpg,*.png}`; do
# imagemagick processes with the filename...
done
对于包含空格的文件,此代码会中断,并且根据this answer使用ls
这些代码是错误的。
我也从this response尝试了这个解决方案,但显然我完全错了(它提出了一个错误的重定向'错误),我觉得我需要帮助。
while read LINE; do
...
done `(ls -1tr {*.png,*.jpg}`
那么如何获得循环的有序文件名列表? (它不一定必须是FOR ... IN循环,它可以是WHILE,或任何东西。)
答案 0 :(得分:0)
试试这个:
for file in `ls -1tr {*.jpg,*.png} | awk '{print $9}'`; do
# imagemagick processes with the filename...
done
ls -lrth在输出中给出9个coulmns,其中你只需要第9列(文件名),你可以使用awk获得
如果您有空格分隔的文件名,请修改awk print以在第9列之后打印所有数据