2016-07-27 10 views
0

私は2つのディレクトリを持っています。 dir1とdir2。 dir1のファイルで2つのディレクトリに異なる内容のファイル名を見つける方法

は以下のとおりです。dir2のファイルで

abf.txt abc.txt、abd.txt、abe.txtは、以下のとおりです。abi.txt、abd.txt、abe.txt、abg.txt、ABH .txt

abd.txtとabe.txtは両方のディレクトリに存在し、異なる内容を持っています。どのようにこれらの2つのファイル名だけを返すスクリプトを書く? dir1またはdir2に存在しないファイルは必要ありません。私は同じ名前を持ち、異なった内容を持っているファイル名だけが必要です。

ありがとうございます。そうする

+0

コマンド簡単な解決策を提案している:COMM -23 <(LS DIR1 |ソート)<(DIR2 LS |ソート)はdirのいずれかに存在しないファイルを表示します。 –

+1

SOのガイドラインによると、これまでに試したこと、欠けていること(またはエラー)が表示されるはずです。まずは努力してください。 – SaintHax

+0

これは? [linuxの2つのディレクトリの違い](http://stackoverflow.com/q/16787916/1983854)。 – fedorqui

答えて

0

一つの間接的な方法は、差分コマンド

diff -r dir1 dir2 | grep "diff -r"

diff -r dir1 dir2diff -r dir1/file dir2/fileなどのファイル名と同じ名前のファイルの違いを示します使用しています。残りのファイルは接頭辞Onlyでリストされます。

ホープ誰かが:-)のような

+0

ありがとう@Pintu ..あなたのコマンドは次のように表示されます:diff -r dir1/abd.txt dir2/abd.txtとdiff -r dir1/abe.txt dir2/abe.txtファイル名だけを取得する方法はありますか? –

+0

結果をcutコマンドでパイプすることができます。 'diff -r dir1 dir2 | grep "diff -r" |カット-d "" -f3 | xargs basename'となります。これは助けになるはずです。 – Pintu

+0

それは@Pintuを働かせました。ありがとうございます.. –

関連する問題