我有成千上万的两个文件集,一个是name.ext,另一个文件名是以name.ext.in结尾,所以每个name.ext都有一个name.ext.in,现在我必须将其传递给对诸如customise.pl name.ext name.ext.in之类的脚本的参数。我喜欢
#!/bin/bash
FILE1=$.ext
FILE2=$.ext.in
customise.pl $FILE1 $FILE2
但没有成功。有什么想法吗?
答案 0 :(得分:4)
for i in *.ext; do
customise.pl "$i" "$i.in"
done
答案 1 :(得分:2)
从评论到其他答案判断,你可能想要这样的东西:
for file in *.ext; do
customise.pl "$file" "${file%.*}.new.psl"
done
${file%.*}
语法仅将$file
的部分替换为最后一个点。如果需要,可以查看Bash或Dash的联机帮助页。
答案 2 :(得分:0)
如果你想为每对文件运行customise.pl,你可以在bash脚本中这样做:
#!/bin/bash
for i in `ls *.ext`
do
customise.pl $i $i.in
done
答案 3 :(得分:0)
我想最简单的形式是
for f in "*.ext"
do
customise.pl $f.ext $f.ext.in
done
输出:
答案 4 :(得分:0)
ls *.ext |xargs -i customise.pl {} {}.in