Filenames

區分兩個目錄,但忽略副檔名

  • April 14, 2020

我有兩個文件名相似但副檔名不同的目錄。這是一個例子:

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

引用自:https://unix.stackexchange.com/questions/178321