如何使用Bash遍历一系列文件

时间:2014-10-22 13:48:05

标签: bash loops sequential

我试图遍历一系列文件并修改它们。文件遵循一种模式,但我不能使用模式,因为我不需要所有匹配模式的文件,只需要一定数量的数字序列。

示例:

for files in D70_3113.NEF...D70_3330.NEF;do exiftool -GPS...; done

2 个答案:

答案 0 :(得分:1)

如果要遍历数字列表,可以使用大括号扩展:

for files in D70_{3113..3330}.NEF; do exiftool -GPS...; done

答案 1 :(得分:0)

这取决于您对命名方案的期望。我无法判断您的文件是否可以从

开始
D70_3113.NEF to D79_9999.NEF

D70_3113.NEF to D70_3999.NEF

或者你有什么。假设后者,你可以这样做:

for files in D70_3[0-9][0-9][0-9].NEF; do exiftool -GPS...; done

...让shell的模式匹配为你完成工作。

警告:如果你有太多文件," for"命令行可能太长。在这种情况下,您需要查找并将其输出管道输入到"而#34;环。但今天的命令行可以运行很长时间......超过100,000个字符。见Bash command line and input limit