2014-07-18 166 views
0

我現在有成千上萬的.txt文件大文件夾,併爲每個相應的.wav文件,像這樣:具有相同名稱但不同的擴展查找和複製文件

1.txt 
1.wav 
2.txt 
2.wav 

每個文件名是隨機數。

在這個文件夾也有一些這些.txt和.wav文件對多個.trs文件。

我需要做的是找到數據的所有三胞胎,並將它們複製到另一個文件夾,留下不具有相應的.trs文件後面的所有.txt和.wav文件。所以最後只有數據的三胞胎將在這個新的文件夾,就像這樣:

4.txt 
4.trs 
4.wav 
5.txt 
5.trs 
5.wav 

所有我能夠做到的就是將文件複製所有.trs到一個單獨的文件夾,我不知道如何繼續並完成這一點。

我感謝所有幫助或提示,你可以給我。

回答

4
for FILE in *.txt; do 
    BASE=${FILE%.txt} 
    [[ -e $BASE.trs && -e $BASE.wav ]] && cp "$FILE" "$BASE.trs" "$BASE.wav" /some/dir 
done 

要與特定數值的文件名,擴展使用通配符:

shopt -s extglob 
for FILE in +([[:digit:]]).txt; do 
    BASE=${FILE%.txt} 
    [[ -e $BASE.trs && -e $BASE.wav ]] && cp "$FILE" "$BASE.trs" "$BASE.wav" /some/dir 
done 
0

如果我是正確的:FO各TRS文件,你有一個txt和WAV文件複製:

for FILE in *.trs; do 
    BASENAME=${file%.trs} 
    cp $FILE $BASENAME.txt $BASENAME.wav somewhere/ 
done 
相關問題