2つのファイルの内容比較comm、diff、grep
2206 ワード
げんしょう
システムはまず1つのファイルAをあげて、それから新しい記録があるため、また1つのファイルBをあげて、今A、Bを通じてこの部分の新しい記録を探し出します
知識を重んじる
検索すると、主に3つのLinuxコマンドが使用できます.
comm
commは、2つの順序付けされたファイルを比較し、出力を比較することができます:Aにのみ現れる、Bにのみ現れる、2つのファイルにすべて存在する.
直接commを使用すると3列が出力され、1列目がAのみ、2列目がBのみ、3列目がCのみとなり、commの後ろに数字を付けると、この列は表示されないことを示します.
共通パラメータ:
comm --help
使用法:comm[オプション]...ファイル1ファイル2並べ替えられたファイル1とファイル2を行ごとに比較します.
オプションが付属していない場合、プログラムは3列の出力を生成します.1番目の列にはファイル1固有の行が含まれ、2番目の列にはファイル2固有の行が含まれ、3番目の列には2つのファイルが共有する行が含まれます.
-1ファイル1特有の行を出力しない-2ファイル2特有の行を出力しない-3両ファイル共通の行を出力しない
--check-order入力が正しくソートされているかどうかをチェックします.すべての入力行がペアになっている場合でも--nocheck-orderは入力が正しくソートされているかどうかをチェックしません.--output-delimiter=STRはSTRに従って列を分けます.--helpはこのヘルプ情報を表示し、--version表示バージョン情報を終了し、終了します.
Note, comparisons honor the rules specified by 'LC_COLLATE'.
例:comm-12ファイル1ファイル2は、ファイル1とファイル2の両方にある行comm-3ファイル1ファイル2のみを印刷し、ファイル2にない行を印刷します.逆もまた然り.
diff
diffは2つのファイルの間の違いを比較して、2つの一致する提案を出して、diffは前後の順序があって、前のは古いファイルで、後ろのは新しいファイルです
共通パラメータ:
diff A Bを使用する場合、出力の説明:
説明:Bファイルにデータがaの2行目が追加されました.Bの2行目をAの1行目に追加した後、2つのファイルが一致して追加する行を維持するために、>で識別し、>新しいファイルを指します.
説明:Aファイルの4行目が削除され(d)、Aの中のその行を削除する必要があります.
説明:Aの6行目はBの7-9行に置き換えられ、Aの6行目の内容を置き換える必要がある
grep
grepは主にフィルタリングを検索するために使用され、
まとめ
ファイルが大きすぎて並べ替えができないため、すべての直接passがcommを落としてしまいました・・・新規レコードを出力したいだけなのでdiffコマンドは適切な方法が見つからず断念・・grepは可能らしいのですが、ファイルが大きすぎてgrep:Memory exhausted・・・と報告し、最終的に2つのファイルをデータベースに入れ、データベースを通じて新規レコード0.0を抽出しました
システムはまず1つのファイルAをあげて、それから新しい記録があるため、また1つのファイルBをあげて、今A、Bを通じてこの部分の新しい記録を探し出します
知識を重んじる
検索すると、主に3つのLinuxコマンドが使用できます.
comm A B
diff A B
grep -f A B
comm
commは、2つの順序付けされたファイルを比較し、出力を比較することができます:Aにのみ現れる、Bにのみ現れる、2つのファイルにすべて存在する.
直接commを使用すると3列が出力され、1列目がAのみ、2列目がBのみ、3列目がCのみとなり、commの後ろに数字を付けると、この列は表示されないことを示します.
共通パラメータ:
comm -1 A B A ( B + )
comm -2 A B B
comm -3 A B
comm -12 A B A B
comm -23 A B A
comm -13 A B B
comm --help
使用法:comm[オプション]...ファイル1ファイル2並べ替えられたファイル1とファイル2を行ごとに比較します.
オプションが付属していない場合、プログラムは3列の出力を生成します.1番目の列にはファイル1固有の行が含まれ、2番目の列にはファイル2固有の行が含まれ、3番目の列には2つのファイルが共有する行が含まれます.
-1ファイル1特有の行を出力しない-2ファイル2特有の行を出力しない-3両ファイル共通の行を出力しない
--check-order入力が正しくソートされているかどうかをチェックします.すべての入力行がペアになっている場合でも--nocheck-orderは入力が正しくソートされているかどうかをチェックしません.--output-delimiter=STRはSTRに従って列を分けます.--helpはこのヘルプ情報を表示し、--version表示バージョン情報を終了し、終了します.
Note, comparisons honor the rules specified by 'LC_COLLATE'.
例:comm-12ファイル1ファイル2は、ファイル1とファイル2の両方にある行comm-3ファイル1ファイル2のみを印刷し、ファイル2にない行を印刷します.逆もまた然り.
diff
diffは2つのファイルの間の違いを比較して、2つの一致する提案を出して、diffは前後の順序があって、前のは古いファイルで、後ろのは新しいファイルです
共通パラメータ:
diff A B , ( )
diff -c A B , ,
diff -y A B , B
diff A Bを使用する場合、出力の説明:
1a2
> a
説明:Bファイルにデータがaの2行目が追加されました.Bの2行目をAの1行目に追加した後、2つのファイルが一致して追加する行を維持するために、>で識別し、>新しいファイルを指します.
4d5
< e
説明:Aファイルの4行目が削除され(d)、Aの中のその行を削除する必要があります.
6c7,9
< g
---
> h
> h
> i
説明:Aの6行目はBの7-9行に置き換えられ、Aの6行目の内容を置き換える必要がある
grep
grepは主にフィルタリングを検索するために使用され、
grep -f -v
を使用してファイル比較が可能である.grep -v -f a b b a
まとめ
ファイルが大きすぎて並べ替えができないため、すべての直接passがcommを落としてしまいました・・・新規レコードを出力したいだけなのでdiffコマンドは適切な方法が見つからず断念・・grepは可能らしいのですが、ファイルが大きすぎてgrep:Memory exhausted・・・と報告し、最終的に2つのファイルをデータベースに入れ、データベースを通じて新規レコード0.0を抽出しました