私は最初にURLのリストを含む2つのファイルを作成しています—それらをold
とnew
と呼びます。 2つのファイルを比較したいのですが、new
ファイルにold
ファイルにないURLがある場合は、それらをextra_urls
に表示したいと思います。ファイル。
diff
コマンドの使用についていくつか読んだことがありますが、私が知る限り、これは情報の順序も分析します。順序が出力に影響を与えたくありません。 new
の追加のURLをextra_urls
ファイルに出力したいのですが、他の2つのファイルのどちらにどのような順序で配置されていてもかまいません。
これどうやってするの?
grep
を使用します:
grep -vFf old new > extra_urls
-f
:ファイルから検索パターンを読み取るようにgrep
に指示します。この場合、old
。-v
:一致しない行のみを出力するように、一致を反転するようにgrepに指示します。-F
:検索パターンを正規表現ではなく文字列として解釈するようにgrepに指示します。そうすれば、.
のURLは文字通り一致します。これらを組み合わせると、grep
にnew
にない行がold
に出力されます。ファイル内のURLの順序は関係ありません。
順序は重要なので、awk
を使用してください
awk '
NR == FNR {old[$1]=1; next}
!($1 in old)
' old new > extra
Meldというアプリケーションがあります。 2つ(または3つ)のファイルを並べて表示し、違いを示し、一方から他方への選択的なコピーまたは文字の削除を可能にします。
Meldは、次の端末からインストールできます。
Sudo apt-get install meld