Text-Processing
將資訊從 .dat 添加到 .csv 文件
我有一個這樣的文本文件:
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
如下所示: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
主要工作是將“第二”文件中的三行合併為一行。假設文件格式是您在範例中給出的格式,下面的 awk 就可以做到這一點
awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file
現在第二部分正在添加到 file1,這可以通過簡單的重定向來完成
>>
那麼完整的命令將是
awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file >> first_file