複数ファイルの比較

複数ファイルの比較

異なる場所に保存されている複数のファイルの違いを比較または検索するbashスクリプトが必要です。

ファイルの下/tmp/test/

  • A.txt
  • B.txt
  • C.txt

/home/oldtest/以下のファイルと比較

  • A.txt
  • B.txt
  • C.txt

健康状態:

  1. ファイル/tmp/test/A.txtはとのみ比較されます/home/oldtest/A.txt(他のファイルと同様 -B.txtと比較B.txt)。

  2. 変更が見つかった場合:ステータスは「A.txtファイルに変更が必要」でなければなりません。

答え1

diffGNU diffutilsには再帰比較オプションがあります。

diff -qrs /dir/A /dir/B

ディレクトリの比較:-q静かに(つまり、違いは印刷されず、ファイルが異なることを報告するだけで)、再帰的に-r(すべてのサブディレクトリを含むツリー全体)-s同じファイルを報告します。

答え2

cd /tmp/test
for i in *.txt; do diff -q $i /home/oldtest/$i; done

異なるファイルごとに「ファイルA.txtと../home/oldtest/A.txtが異なります」と出力されます。

答え3

cd /tmp/test/;
for x in *; do \
  cmp -s "$x" /home/oldtest/"$x" || echo "Modification required in file $x";
done;|more

答え4

誰かがあなたのためにスクリプトを書いてくれるかどうかはわかりませんが、あなたはそれを使うことができますdiffdiff -q

たとえば、

$ diff -q .vimrc .bashrc
Files .vimrc and .bashrc differ

自動化するにはスクリプトを使用できます。

Bashスクリプトの作成方法に関する良い参考資料については、こちらをご覧ください。http://bash.cyberciti.biz/guide/Main_Page

関連情報