我有一组文件,我想在我希望为其编写脚本的文件夹中执行操作。每个文件都以 mazeFilex
开头,其中 x
可以是任意数字,是否有一种快速简便的方法来对每个文件执行操作?例如我会做
cat mazeFile0.txt | ./maze_ppm 5 |转换 - maze0.jpg
在知道文件始终以 mazeFile
开头的情况下如何选择每个文件?
最佳答案
for fname in mazeFile*
do
base=${fname%.txt}
base=${base#mazeFile}
./maze_ppm 5 <"$fname" | convert - "maze${base}.jpg"
done
注意事项
for fname in mazeFile*; do
这段代码开始循环。以这种方式编写,对于所有文件名都是安全的,无论它们的名称中是否包含空格、制表符或其他任何内容。
base=${fname%.txt}; base=${base#mazeFile}
这会删除
mazeFile
前缀和.txt
仅保留我们将用于输出文件的基本名称的后缀。./maze_ppm 5 <"$fname" | convert - "maze${base}.jpg"
输出文件名是使用
base
构建的.还要注意cat
是不必要的,已在此处删除。
关于bash - 对文件夹 bash 中以字符串开头的所有文件名调用脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812585/