同じディレクトリで、拡張子が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
も読み取ろうとします。スケジュールされた出力はfdで利用可能で、オープンfd(、システムによって異なる場合があります)に対応するパス名が提供されます。diff
diff <(foo)
foo
diff
/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