使用前导零bash命令行

时间:2017-07-10 15:04:00

标签: regex bash loops command-line

例如我有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个文件。我想阅读所有文件。

2 个答案:

答案 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})