URL: https://linuxfr.org/forums/programmation-shell/posts/script-awk-afficher-le-nom-du-fichier-en-cours-de-traitement Title: Script awk : Afficher le nom du fichier en cours de traitement ? Authors: Makmy Date: 2019年07月16日T18:19:02+02:00 License: CC By-SA Tags: bash, awk, csv, script_shell et linux Score: 1 Bonjour, Je suis bloqué sur un script et je ne sais pas comment m'en sortir. Je sollicite donc votre aide. J'ai un script qui me permet d'afficher avec une mise en page des informations provenant de plusieurs CSV. Voici le script : ```sh cat /var/www/cgi-bin/LPAR_MAP/*.csv | grep foo | awk -F',|;' '{print 2ドル","5ドル","6ドル","7ドル}' | awk '{ print "LPARS :" 2ドル print "RAM : " 5ドル print "CPU 1 : " 6ドル print "CPU 2 : " 7ドル }' ``` Ce script va afficher toutes les lignes des fichiers CSV, en ne gardant que les lignes contenant le mot " foo " et n'affichant que les colonnes 2,5,6 et 7. Voici le type de CSV que je dois traiter :> MO2PPC20;miaibv95;Running;AIX 6.1 6100年09月10日-1731;60;0.6;4;DefaultPool;shared;uncap;64 MO2PPC20;miaibv161;Running;AIX 6.1 6100年09月10日-1731;60;1.2;4;DefaultPool;shared;uncap;128 MO2PPC20;miaibv246;Running;AIX 6.1 6100年09月10日-1731;12;0.5;1;DefaultPool;shared;uncap;64 MO2PPC20;mplaix0088;Running;AIX 7.1 7100年05月02日-1810;130;1.5;11;DefaultPool;shared;uncap;64 MO2PPC20;mplaix0306;Running;AIX 7.1 7100年05月02日-1810;180;0.5;3;DefaultPool;shared;uncap;64 MO2PPC20;mplaix0087;Running;AIX 7.1 7100年05月02日-1810;100;0.4;4;DefaultPool;shared;uncap;64 MO2PPC20;miaibv182;Running;AIX 6.1 6100年09月10日-1731;5;0.5;1;DefaultPool;shared;uncap;64 MO2PPC20;mo2vio20b;Running;VIOS 2.2.5.20;7;1.0;2;DefaultPool;shared;uncap;192 MO2PPC20;mo2vio20a;Running;VIOS 2.2.5.20;7;1.0;2;DefaultPool;shared;uncap;192 MO2PPC21;mo2vio21b;Running;VIOS 2.2.6.10;6;1.5;3;DefaultPool;shared;uncap;192 MO2PPC21;mo2vio21a;Running;VIOS 2.2.6.10;6;1.5;3;DefaultPool;shared;uncap;192 MO2PPC21;oncwasp4;Running;AIX 6.1 6100年09月10日-1731;15;0.6;2;DefaultPool;shared;uncap;128 MO2PPC21;mplaix0122;Running;AIX 7.1 7100年05月02日-1810;175;2.3;5;DefaultPool;shared;uncap;64 Voici ce que ça donne en sorti : ``` FRAME : ------------------ LPARS :mplaix0021 RAM : 11 CPU 1 : 1.0 CPU 2 : 2 LPARS :mplaix0005 RAM : 7 CPU 1 : 0.5 CPU 2 : 2 LPARS :mplaix0025 RAM : 400 CPU 1 : 36.0 CPU 2 : 46 LPARS :mplaix0019 RAM : 120 CPU 1 : 4.0 CPU 2 : 8 LPARS :mplaix0003 RAM : 26 CPU 1 : 0.5 CPU 2 : 2 LPARS :mplaix0007_OLD_DNTSTART RAM : 0.25 CPU 1 : 0.7 CPU 2 : 7 LPARS :mplaix0009 RAM : 180 CPU 1 : 6.0 CPU 2 : 12 ``` Le problème c'est que même si j'arrive à sélectionner seulement les lignes qui m’intéressent en faisant un grep sur certain mot( ici MO1PPC01 ), je ne sais pas à quel fichier appartiennent les informations affichées. L'idée serait d'avoir quelques choses dans ce style : ``` FRAME : ------------------ File : XXXXX.csv LPARS :mplaix0021 RAM : 11 CPU 1 : 1.0 CPU 2 : 2 LPARS :mplaix0005 RAM : 7 CPU 1 : 0.5 CPU 2 : 2 File : XXXX.csv LPARS :mplaix0025 RAM : 400 CPU 1 : 36.0 CPU 2 : 46 LPARS :mplaix0019 RAM : 120 CPU 1 : 4.0 CPU 2 : 8 LPARS :mplaix0003 RAM : 26 CPU 1 : 0.5 CPU 2 : 2 File : XXXXXX.csv LPARS :mplaix0007_OLD_DNTSTART RAM : 0.25 CPU 1 : 0.7 CPU 2 : 7 LPARS :mplaix0009 RAM : 180 CPU 1 : 6.0 CPU 2 : 12 ``` Bref, que je puisse afficher le nom du fichier avec, en dessous, les informations qui lui sont propres. Auriez-vous une solution ? Merci d'avance ! :)

AltStyle によって変換されたページ (->オリジナル) /