Adiciona informações de .dat ao arquivo .csv

0

Eu tenho um arquivo de texto como este:

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

E outro assim:

SN: FDO1129Z9ZJ
Barragan_3750
IP address: 148.111.4.122

Eu gostaria de adicionar as informações do segundo arquivo no primeiro usando awk assim:

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
    
por Cesar Alejandro Villegas Yepez 07.03.2017 / 05:16

1 resposta

2

O trabalho principal é combinar as três linhas no "segundo" arquivo em uma única linha. Assumindo que o formato do arquivo será o que você deu no exemplo, o seguinte awk faria esse truque

awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file

Agora, a segunda parte está adicionando ao arquivo1, que poderia ser realizada por um simples redirecionamento >>

O comando completo então seria

 awk '{ printf "%s", $NF; if (NR % 3 == 0) print ""; else printf "," }' second_file >> first_file
    
por 07.03.2017 / 06:39