2017-03-04 22 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