Filenames
區分兩個目錄,但忽略副檔名
我有兩個文件名相似但副檔名不同的目錄。這是一個例子:
DIR1: - IN89284.wav - OUT9920.wav DIR2: - IN89284.mp3 - OUT9920.mp3
我想比較這些目錄但忽略文件副檔名,所以在這種情況下它們將是相同的。我怎樣才能做到這一點?我想我必須遍歷第一個目錄,修剪每個文件名(刪除副檔名),然後在第二個目錄中搜尋它。有沒有更好的方法來做到這一點?
與
zsh
:diff -u <(cd dir1 && printf '%s\n' **/*(D:r)) \ <(cd dir2 && printf '%s\n' **/*(D:r))
(D)
包括點文件(隱藏文件),:r
獲取根名稱(刪除副檔名)。使用通配可以保證一致的排序順序。
(假設文件名沒有換行符)。
diff <(ls -1 ./dir1 | sed s/.wav//g) <( ls -1 ./dir2 | sed s/.mp3//g)
列出目錄並將每個文件放在單獨的行上
ls -1
刪除文件副檔名
sed s/.wav//g