我编写了一个小的 shell 脚本来遍历名称中包含数字的文件夹。脚本如下。
#!/bin/bash
for (( i = 100; i < 1000; i++))
do
cp test0$i/test.out executables/test0$i.out
done
在这里,他的脚本遍历 test0100 .. 到 test0999。我想增强此脚本以从test0000遍历到test1100文件夹。我无法做到这一点。
我是 shell 脚本的新手。任何帮助表示赞赏。
我编写了一个小的 shell 脚本来遍历名称中包含数字的文件夹。脚本如下。
#!/bin/bash
for (( i = 100; i < 1000; i++))
do
cp test0$i/test.out executables/test0$i.out
done
在这里,他的脚本遍历 test0100 .. 到 test0999。我想增强此脚本以从test0000遍历到test1100文件夹。我无法做到这一点。
我是 shell 脚本的新手。任何帮助表示赞赏。
使用序列:
for i in $(seq -w 0 1100); do
cp test$i/test.out executables/test$i.out
done
使用-w
标志 seq 填充生成的带有前导零的数字,以使所有数字具有相等的长度。
这个怎么样 -
#!/bin/bash
for (( i = 0; i < 1100; i++))
do
cp test$(printf "%04d" $i)/test.out executables/test$(printf "%04d" $i).out
done
最近的一次狂欢
#!/bin/bash
for i in {0000..1100}; do
do
cp test$i/test.out executables/test$i.out
done
请注意,大括号扩展发生在变量扩展之前(参见手册),所以如果你想做
start=0000
stop=1100
for i in {$start..$stop}
那是行不通的。在这种情况下,使用seq