多个文件的Bash输入

时间:2014-02-02 19:53:28

标签: bash unix

我有成千上万的两个文件集,一个是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

但没有成功。有什么想法吗?

5 个答案:

答案 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