例如,我有15个文件作为files:
,abc11.txt 02.txt,.,…,abc11.txt 09.txt,abc11.txt 10.txt,abc11.txt 11.txt.abc15.txt
我想使用bash从命令行读取这些文件并执行一些操作。
for i in {1..15}; do COMMAND abc$i.txt; done上面的语句只读取10到15之间的文件,因为前9个文件的开头为0。如果在上面的命令中使用$之前的[0],那么它只读取前9个文件。我想看所有的文件。
发布于 2017-07-10 15:09:06
从bash 4.0开始,在{0x..0y}中引入零被支持 (零填充支撑扩展)。有了它,你可以这样做:
for i in {01..15}; do COMMAND "abc$i.txt"; done发布于 2017-07-10 15:08:47
您可以在进程替换中使用零填充格式的printf。
while read -r f; do
echo "processing $f"
done < <(printf "abc%02d.txt\n" {1..15})https://stackoverflow.com/questions/45015515
复制相似问题