例如我有15个文件作为休闲:
abc01.txt,abc02.txt,...,...,abc09.txt,abc10.txt,abc11.txt,... ... abc15.txt
我想使用bash从命令行读取这些文件并执行一些操作。
for i in {1..15}; do COMMAND abc$i.txt; done
上述语句只读取10到15的文件,因为前9个文件的前导0。如果我在上面的命令中使用$ [0]
之前它只读取前9个文件。我想阅读所有文件。
答案 0 :(得分:3)
bash
4.0导致{0x..0y}
中的is supported为零(零填充大括号扩展)。有了它,你可以这样做:
for i in {01..15}; do COMMAND "abc$i.txt"; done
答案 1 :(得分:1)
您可以在流程替换中使用printf
零填充格式:
while read -r f; do
echo "processing $f"
done < <(printf "abc%02d.txt\n" {1..15})