检查文件字符串是否为true根据文件字符串创建新文件

时间:2013-01-09 03:46:35

标签: bash filenames

情况:

AVI文件有时会有两个文件filename-cd1.avi和filename-cd2.avi。

我在iMac上的bash脚本中使用以下行将两个cd文件复制到一个AVI文件中:

MENCODER -ovc copy -oac copy * CD1.avi * CD2.avi -o“Joined Movie.avi”> / dev / null 2>& 1

我想要做的是保留基本文件名。所以:

找到带有'-cd2'的文件名的

,例如:OldMovie-cd2.avi

我想要做的是将“OldMovie”存储为一个变量,这样我就可以告诉mencoder对这两个文件执行复制了......这就是踢球者 - 我喜欢让生成的文件为“OldMovie”。 avi“这是两个cd子文件的基本名称。

有意义吗? Geez我希望如此。

感谢您的帮助,我在没有解决方案的情况下搜索了几个小时。

兰迪

1 个答案:

答案 0 :(得分:1)

for avi in *-cd2.avi; do

    base=`echo $avi | sed 's+-cd2\.avi+$\.avi+g'`
    echo base is $base
    echo looking for ${base}-cd1.avi
    if [ -f "${base}-cd1.avi" ]; then
         echo Found ${base}-cd1.avi
         MENCODER -ovc copy -oac copy ${base}-cd1.avi ${base}-cd2.avi -o "${base}.avi" > /dev/null 2>&1
    else
         echo Did not find ${base}-cd1.avi
    fi
done