
我想在同一目錄中找到具有相同文件名的 wav 擴展名的文件,僅擴展名不同(mp3)。
到目前為止,我嘗試了以下結構化命令:
$ diff -s $(for i in *.wav; do echo "${i%wav}"; done) $(for i in *.mp3; do echo "${i%mp3}"; done)
diff: extra operand `abc(xyz'
diff: Try `diff --help' for more information.
答案1
如果您想要diff
某些命令的輸出,請使用流程替代<(...)
而不是命令替換$(...)
。否則這似乎應該有效。
diff $(foo)
將 的輸出foo
放在 的命令列上diff
,同時diff
想要讀取檔案的名稱。diff <(foo)
安排 的輸出可foo
從 fd 取得,並給出diff
與已開啟的 fd 相對應的路徑名(/dev/fd/NN
,可能是特定於系統的)。
雖然再一次閱讀這個問題,也許你只想做這樣的事情:
for f in *.wav ; do
b=${f%.wav}
if [ -f "$b.mp3" ] ; then echo "$b.mp3 exists" ; else
echo "$b.mp3 missing" ; fi
done
這將告訴.wav
目錄中的所有檔案是否都有對應的.mp3
檔案。 (但當然不會顯示任何.mp3
沒有相應的文件。).wav