Unixでファイルを比較して別の文字列を検索する

Unixでファイルを比較して別の文字列を検索する

2つのファイルがあります。

  • File1:

    DX 100860599215|732512737|00002|40|1|20220105|20220105|20220523|31014280|5892720|36907000|1|20220105|40|20|D|
    
  • File2

    DX 100860599216|732512737|00002|40|1|20220105|20220105|20220523|31014280|5892720|36907000|1|20220105|40|20|D|
    

私は完全な行の代わりにこれと異なる文字列を取得したいと思います。

100860599215
100860599216

ここに助けてください。

ベストアンサー1

私はこの醜い解決策を思い出しました。

diff <(tr  '|'  \\n < file1 ) <(tr  '|' \\n < file2)

与える

1c1
< DX 100860599215
---
> DX 100860599216

どこ

  • tr '|' \\n < file1ファイルをマージし、'|'各ファイルを新しい行に置き換えます。
  • <( )コマンド内で擬似ファイルを生成する

コメントに基づいて、交換結果は予想結果に近い結果をtr '|' \\n < file1得ました。tr ' |' '\n\n' < file1

diff <(tr  ' |'  '\n\n' < file1 ) <(tr  ' |' '\n\n' < file2)
2c2
< 100860599215
---
> 100860599216

おすすめ記事