データがパイプで区切られた2つのファイルを比較したいと思います|
。どちらのファイルも同じ結果を持ちますが、一部のフィールドのみが異なる場合があります。
ファイル1:
A|B|C|D
ファイル2:
A|B|F|D
2つのファイルをフィールドごとに比較したいです。つまり、列3を省略した場合、結果に違いはありません。
違い(ある場合)を知りたいです。私が言及したいくつかの列を除いて。
答え1
を使用して不要な列を削除できますcut
。マニュアルページから:
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
-f, --fields=LIST
select only these fields; also print any line that contains
no delimiter character, unless the -s option is specified
--complement
complement the set of selected bytes, characters or fields
これを使用して、比較できる一時ファイルを作成できますdiff
。
cut -d'|' -f 3 --complement <file1 >file1.tmp
cut -d'|' -f 3 --complement <file2 >file2.tmp
diff file1.tmp file2.tmp