2017-03-04 51 views
1

我的文件夹中的许多文件:巴什 - 找对匹配的文件

Filename1.mp4 
Filename2.mp4 
Filename3.mp4 
Etc. 

以及与加后缀的命名多个文件:

Filename1_x264.mp4 
Filename2_x264.mp4 
Filename3_x264.mp4 
Etc. 

我试图赶上使用find命令匹配对并在它们上执行外部命令,但无法找到一种方法来执行它。 任何想法将不胜感激。

+0

请看看[编辑的帮助(http://stackoverflow.com/editing-help)。 – Cyrus

回答

3

使用bash和它的参数扩展:

for i in *_x264.mp4; do 
    j="${i%*_x264.mp4}.mp4"   # remove suffix _x264.mp4 and add .mp4 
    if [[ -e "$j" ]]; then 
    echo "$i and $j exists" 
    fi 
done 
+0

'-e“$ i”'应该始终为真,可以忽略。 – Socowi

+0

@Socowi:赶上!我已经更新了我的答案。 – Cyrus

+0

'-e“$ i”'总是如果模式匹配任何东西:)使用'shopt -s nullgob'或添加'[[-e $ i]] ||作为循环的第一行修复那个小角落案例。 – chepner

相关问题