bash脚本一次处理多个文件



我在.txt,.update,.text等文件夹中有多个扩展名的文件。文件名类似于

out1.txt, 输出1.文本, 输出1.更新,

out2.txt, 输出2.文本, out2.更新

等等....我的命令如下所示:

./script.pl out1.txt out1.text out1.update

我想把这个命令放在每个文件的循环中。我尝试使用这样的循环:

for i in *.{txt,text,update}

但是它需要包括扩展名在内的全名,因此我不知道如何在命令中推断出特定的扩展文件。

谢谢!

您可以使用:

for f in *.txt;
do
b=${f%.txt} # the trick is there
./script.pl $b.txt $b.text $b.update
done
ext=$(awk -F. '{ print "."$NF }' <<< $i)
fil=$(basename -s $ext $i)

使用 awk 提取扩展名(使用"."分隔的第二条数据( 使用带有扩展名的basename -s来获取不带扩展名的文件名

最新更新