次のテキストファイルがあります。
sn,device_id,ip_address
P7K08UQ , BIOTERIO, 148.111.83.177
H006K022 , N7K-LAN(JAF1651ANDL), 148.111.4.111
FNS174002FT , LAB_PESADO, 148.111.131.188
FNS14420533 , Arquitectura_Salones, 148.111.135.44
H006K021 , CIVIL_253, 148.111.132.666
H006K083 , Arquitectura, 148.111.134.111
H006K032 , ING_CIVIL, 148.111.133.777
FNS16361SG0 , ING_CIVIL_DIR, 148.111.4.188
H006K040 , Ingenieria_Posgrado, 148.111.137.253
00000MTC1444080Z, Biblio_Barragan, 148.111.136.61
FNS11190FLE , Electronica_Edif_3, 148.111.130.253
次のようなものがあります。
SN: FDO1129Z9ZJ
Barragan_3750
IP address: 148.111.4.122
awk
以下を使用して、2番目のファイルの情報を最初のファイルに追加したいと思います。
sn,device_id,ip_address
P7K08UQ , BIOTERIO, 148.111.83.177
H006K022 , N7K-LAN(JAF1651ANDL), 148.111.4.111
FNS174002FT , LAB_PESADO, 148.111.131.188
FNS14420533 , Arquitectura_Salones, 148.111.135.44
H006K021 , CIVIL_253, 148.111.132.666
H006K083 , Arquitectura, 148.111.134.111
H006K032 , ING_CIVIL, 148.111.133.777
FNS16361SG0 , ING_CIVIL_DIR, 148.111.4.188
H006K040 , Ingenieria_Posgrado, 148.111.137.253
00000MTC1444080Z, Biblio_Barragan, 148.111.136.61
FNS11190FLE , Electronica_Edif_3, 148.111.130.253
FDO1129Z9ZJ , Barragan_3750, 148.111.4.122
答え1
主な作業は、「2番目の」ファイルの3行を1つにマージすることです。ファイル形式が例で提供された形式であると仮定すると、次のawkはトリックを実行します。
awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file
2番目の部分はfile1に追加することです。これは簡単なリダイレクトで行うことができます。>>
完全なコマンドは次のとおりです。
awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file >> first_file