我试图匹配并循环扩展.txt .h .py文件.在特定文件夹$ {arg}中.这就是我做的
for file in ${arg}/*.{txt, h, py}; do
...
done
Run Code Online (Sandbox Code Playgroud)
但是,即使我有这样的文件,我的所有扩展都没有这样的文件.
line 24: dir1/*.{txt,: No such file or directory
line 24: h,: No such file or directory
line 24: py}: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如何循环使用指定扩展名的文件for
?
我想将当前目录中的所有jpgs(独立于大写或大写或jpeg扩展名)转换为95%优化的jpgs.但是我没有在JP循环中使用JPG,jpg和jpeg文件正确获取文件:/
#!/bin/bash
PIC=$(ls "$PWD"/*.{jpg,jpeg,JPG})
for i in $PIC
do
echo $i
# convert $i -quality 95 ${i%.*}_resaved.jpg
done
Run Code Online (Sandbox Code Playgroud) 我希望以下循环遍历m4a文件和webm文件。目前,我使用了两个不同的循环,另一个循环只是替换了该循环中的所有m4a。ffmpeg输出的文件也应该删除m4a扩展名(如果它是m4a文件)和webm扩展名(如果它是webm文件)。并将其替换为mp3。(与m4a一样)。我不知道该怎么做,我认为它与正则表达式有关,但是我不知道如何真正使用它们,也没有找到一个好的教程/文档,所以如果您有的话,也请链接它。
for i in *.m4a ; do
echo "Converting file $converted / $numfiles : $i"
ffmpeg -hide_banner -loglevel fatal -i "$i" "./mp3/${i/.m4a}.mp3"
mv "$i" ./done
converted=$((converted + 1))
done
Run Code Online (Sandbox Code Playgroud) 如何改变这个:
for file in "$arg"/*.{jpg,jpeg,png} ; do
echo "$file" > z.txt
done
Run Code Online (Sandbox Code Playgroud)
至:
for file in "$arg1"/*.{$arg2} ; do
echo "$file" > z.txt
done
Run Code Online (Sandbox Code Playgroud)
因为我将扩展列表作为单个(逗号分隔)参数.上述尝试不起作用.