行に合わせて貼り付ける

行に合わせて貼り付ける

そのため、次の行で構成される非常に大きなテキストファイルが2つあります。

最初:

Robert:Dillain:Other:Other:Other
Julian:Brude:Other:Other:Other
Megan:Flikk:Other:Other:Other
Samantha:Minot:Other:Other:Other
Jesus:Kimmel:Other:Other:Other

第二:

Sb:Minot:amsen
Jbb:Kimmel:verlin
R:Dillain:bodent
Mb:Flikk:kentin
Jb:Brude:kemin

私はそれらを一致させたい2列(Dillain、Brudeなど)を次の行に貼り付けます。

出力:

Robert:Dillain:Other:Other:Other:R:Dillain:bodent
Jesus:Kimmel:Other:Other:Other:Jbb:Kimmel:verlin
Samantha:Minot:Other:Other:Other:Sb:Minot:amsen
etc...
etc...

私はsedそれを使用することを検討していますが、Unixベースなら何でもいいでしょう。私はこれを自分で行う方法を見つけることができませんでした。

ベストアンサー1

これはミッションのように聞こえますjoin

join -t":" -o "1.1,1.2,1.3,1.4,1.5,2.1,2.2,2.3" \
   -j 2 <(sort -k2,2 -t: test1) <(sort -k2,2 -t: test2)

出力:

Julian:Brude:Other:Other:Other:Jb:Brude:kemin
Robert:Dillain:Other:Other:Other:R:Dillain:bodent
Megan:Flikk:Other:Other:Other:Mb:Flikk:kentin
Jesus:Kimmel:Other:Other:Other:Jbb:Kimmel:verlin
Samantha:Minot:Other:Other:Other:Sb:Minot:amsen

分解:

  • -tフィールド区切り記号を次のように設定します。:
  • -o印刷形式の設定
  • -j列番号の関連付け2
  • <(sort -k2,2 -t: file)-k2番目の列に基づいてファイルを事前にソートし、-tフィールド区切り文字を次のように設定します。:

おすすめ記事