2 votes

Ajout d'un fichier supplémentaire dans un fichier Unix sur la base d'un autre champ dans la ligne correspondante du même fichier

Je souhaite ajouter un autre champ en dernière colonne qui sera calculé à partir du troisième champ de chaque ligne. J'utilise la commande ci-dessous et j'obtiens la sortie souhaitée, mais au lieu de la valeur codée en dur "1534625333", je veux passer le $3, mais comme le $3 fait partie de la commande awk, il n'est pas reconnu dans la fonction système. Est-ce que quelqu'un pourrait m'aider à faire en sorte que $3 soit visible dans system() également. Toute aide sera grandement appréciée.

abc.txt

18552143176|484537|1534575204|2018-08-17|23:53:24|0|0.025862||123 22398615839|484537|1534623829|2018-08-18|13:23:49|0|0.025862||123 16315832000|484895|1534562313|2018-08-17|23:18:33|0|0.702858||123 43995679934|484895|1534572260|2018-08-18|02:04:20|21 11185713954|485598|1534614075|2018-08-18|13:41:15|3587|0.022928||267

awk -F"|" '{printf("%s|%s",$0,system("date -d @1534625333 +%Y%m%d"))}' abc.csv

Résultats souhaités

18552143176|484537|1534575204|2018-08-17|23:53:24|0|0.0258 22398615839|484537|1534623829|2018-08-18|13:23:49|0|0.025862||123|20180818 16315832000|484895|1534562313|2018-08-17|23:18:33|0|0.702858||123|20180817 43995679934|484895|1534572260|2018-08-18|02:04:20|21|0.702858||123|20180818 11185713954|485598|1534614075|2018-08-18|13:41:15|3587|0.022928||267|20180818

0voto

RavinderSingh13 Points 29608

Pourriez-vous essayer ce qui suit ?

awk 'BEGIN{FS=OFS="|"} {$(NF+1)=strftime("%Y%m%d",$3)} 1' OFS="|"  Input_file

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X