awk - 列を交差させ、他のファイルのフィールドを置き換えます。

awk - 列を交差させ、他のファイルのフィールドを置き換えます。

私は標準出力を持っています:

jh888636 4533 cklsls 55885
sp838922 7373 ksshhs 77321
dp828273 8722 kiwjkk 72661

検索する静的ファイルは次のとおりです。

"ah768889"|"Aron Hease"|"Louis Jid"|"99949"
"jh888636"|"John Holmes"|"Peter King"|"60036"
"sp838922"|"Steven Parn"|"Jay Walker"|"60004"
"dp828273"|"David Pim"|"Kate Jast"|"89488"

私の目標は、stdoutの列1を静的ファイルの列1と一致させ、列2/4などを抽出/印刷することです。

望ましい出力の例:

John Holmes (60036) 4533 cklsls 55885
Steven Parn (60004) 7373 ksshhs 77321
David Pim   (89488)  8722 kiwjkk 72661

ベストアンサー1

別のawk方法:

... |awk 'NR==FNR{one=$1;$1="";seen[one]=$0; next} 
{FS="[|\"]"} seen[$2]{printf ("%s (%s) %s\n", $5, $(NF-1), seen[$2])}' - static

出力は次のとおりです。

John Holmes (60036)  4533 cklsls 55885
Steven Parn (60004)  7373 ksshhs 77321
David Pim (89488)  8722 kiwjkk 72661

上記の- staticダッシュは次のことを-意味します。アッ標準入力から読み取ることは次のとおりですstatic静的ファイル

おすすめ記事