• ベストアンサー

特定の拡張子をもつファイルのみを比較

UNIXでディレクトリAとBにある拡張子 .cblと .cpyのみをもつファイルを比較しようとしているのですが、どうすれば一番簡単にできますか? xargsを使うことになるとはおもうのですが、ファイルを指定するうまい方法が見つかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

#2です。すいません、-J はFreeBSDだけの機能でした。 (cd A; ls -1 *.cbl *.cpy)|xargs -i diff A/{} B/{} で、linuxでもAIXでもいけると思います。

参考URL:
http://publib16.boulder.ibm.com/doc_link/Ja_JP/a_doc_lib/cmds/aixcmds6/xargs.htm

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

xargs を使ってやるとすると、 (cd A;echo *.cbl *.cpy)|xargs -J % -n 1 diff A/% B でどうでしょうか。

mwatana2
質問者

お礼

どうもありがとうございました。 AIXなんですが、Jが unknown optionといわれてエラーとなってしまいます。 どうもいい方法がないようですね。 しょうがいなですから、スクリプトを書きます。

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

ディレクトリ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)
回答No.1

あてずっぽで: diff A/*.cpy A/*.cbl B でできたりして.

関連するQ&A