Unixで2つの異なるファイルを1行ずつ比較するには?

Unixで2つの異なるファイルを1行ずつ比較するには?

ファイル1:

123
234
345
456

ファイル2:

123
234
343
758

期待される出力:ファイル3:

TRUE
TRUE
FALSE
FALSE

したがって、コードは2つのファイルを比較して一致する場合は「TRUE」を印刷し、そうでない場合は新しいファイルに「FALSE」を印刷する必要があります。誰でもこれに解決策を提供できますか?

ベストアンサー1

または、他のサポートされているシェルでdiff次のコマンドを使用します。bash<(...) プロセスの交換または次のように真似できます。:

diff --new-line-format='FALSE'$'\n' \
     --old-line-format='' \
     --unchanged-line-format='TRUE'$'\n' \
<(nl file1) <(nl file2)

出力は次のとおりです。

TRUE
TRUE
FALSE
FALSE

--new-line-format='FALSE'$'\n'、印刷FALSE行が異なり、--old-line-format=''file1 の行が異なる場合、出力を無効にする場合はそれを呼び出します。古いファイルをdiffコマンドに切り替えることもできます。つまり、1つは印刷しFALSE、もう1つは無効にする必要があることを意味します。

--unchanged-line-format='TRUE'$'\n'、印刷TRUE行が同じ場合。 C$'\n'スタイルのエスケープ構文は、各出力行の後に新しい行を印刷するために使用されます。

おすすめ記事