- ベストアンサー
特定の拡張子をもつファイルのみを比較
UNIXでディレクトリAとBにある拡張子 .cblと .cpyのみをもつファイルを比較しようとしているのですが、どうすれば一番簡単にできますか? xargsを使うことになるとはおもうのですが、ファイルを指定するうまい方法が見つかりません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。すいません、-J はFreeBSDだけの機能でした。 (cd A; ls -1 *.cbl *.cpy)|xargs -i diff A/{} B/{} で、linuxでもAIXでもいけると思います。
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
xargs を使ってやるとすると、 (cd A;echo *.cbl *.cpy)|xargs -J % -n 1 diff A/% B でどうでしょうか。
- Lean
- ベストアンサー率72% (435/603)
ディレクトリA、Bにあるファイルで拡張子.cblと.cpy以外の拡張子を持つファイルの種類がそれ程多くないときにはGNU diffで--excludeオプション指定すれば簡単に出来そうだけど、多い場合は指定するのがつらいかな。 そうするとスクリプトを組んだ方がいいかも。 -------8<-------8<-------8<-------8<-------8<-------8<------- % diff -v diff - GNU diffutils version 2.7 % find . -print . ./A ./A/a.cbl ./A/a.cpy ./A/t.txt ./A/t.html ./B ./B/a.cbl ./B/a.cpy ./B/b.cbl ./B/b.cpy % diff -s A B Files A/a.cbl and B/a.cbl are identical Files A/a.cpy and B/a.cpy are identical Only in B: b.cbl Only in B: b.cpy Only in A: t.html Only in A: t.txt % diff -s --exclude='*.txt' --exclude='*.html' A B Files A/a.cbl and B/a.cbl are identical Files A/a.cpy and B/a.cpy are identical Only in B: b.cbl Only in B: b.cpy -------8<-------8<-------8<-------8<-------8<-------8<-------
- Tacosan
- ベストアンサー率23% (3656/15482)
あてずっぽで: diff A/*.cpy A/*.cbl B でできたりして.
お礼
どうもありがとうございました。 AIXなんですが、Jが unknown optionといわれてエラーとなってしまいます。 どうもいい方法がないようですね。 しょうがいなですから、スクリプトを書きます。