#1 Le 04/10/2019, à 10:17
- Oliv83200
[Résolu]Modification d'un CSV en bash
Bonjour,
Je tente désespérément de faire un script bash me permettant d'un fichier CSV de ce type:
"hostname";"A"
"hostname";"B"
"ipAddress";"192.168.1.1"
"ipAddress";"192.168.1.2"
"hostname";"C"
"ipAddress";null
"ipAddress";"192.168.1.3"
"hostname";"D";
"ipAddress";"192.168.1.4"
"hostname";"E";
"ipAddress";"192.168.1.5"
"ipAddress";"192.168.1.6"
"ipAddress";"192.168.1.7"
En:
"hostname";"ipAddress"
"B";"192.168.1.1"
"B";"192.168.1.2"
"C";"192.168.1.3"
"D";"192.168.1.4"
"E";"192.168.1.5"
"E";"192.168.1.6"
"E";"192.168.1.7"
C'est à dire que lorsque le hostname n'est pas suivi d'une ipAddress je ne le prends pas en compte, tant qu'il y a une ipAddress elle doit être précédée du hostname et enfin si le champs est null, je ne dois pas le prendre en compte.
Je suis un noob en scripting, je m'arrache les cheveux dessus depuis un moment en faisant des boucles à tout va, des awk mais je crois finalement que je me perds toujours plus.
Si vous pouvez juste m'aider afin que je comprenne la logique pour m'améliorer.
Je vous remercie.
Dernière modification par Oliv83200 (Le 08/10/2019, à 13:44)
Hors ligne
#2 Le 04/10/2019, à 11:28
- pingouinux
Re : [Résolu]Modification d'un CSV en bash
Bonjour,
Essaye ceci :
awk -F";" '
BEGIN{OFS=";";H="\"hostname\"";I="\"ipAddress\"";print H,I}
{
if($1==H)host=$2
if($1==I && host && $2!="null") print host,$2
}
' fichier.csv
Hors ligne
#3 Le 04/10/2019, à 13:40
- Oliv83200
Re : [Résolu]Modification d'un CSV en bash
Ca fonctionne.... C'est si simple vu comme ça.
Et moi qui faisait des boucles à tout va... la en 6 lignes c'est résolu.
Un grand merci.
Dernière modification par Oliv83200 (Le 04/10/2019, à 13:40)
Hors ligne
#4 Le 04/10/2019, à 15:00
- pingouinux
Re : [Résolu]Modification d'un CSV en bash
Si ça te convient, merci de modifier ton premier message et d'ajouter [Résolu] dans le titre.
Hors ligne