Traiter les fichier CSV
sadia
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un fichier file.csv qui contient deux colonnes et plusieurs ligne, et la première colonne contient des valeurs identiques et la 2 contient des valeurs déférentes du coup je voulais bien afficher la valeur de la première colonne puis les 5 valeur de la 2 colonne ainsi de suite par exemple en script shell
C;D
2039489;5374789
2039489;6857797
2039489;7459945
2039489;3682095
2039489;7457929
2039489;5436485
2039489;5469013
2039489;3456739
2039489;4744859
2039489;8698722
2039489;8960700
2039489;6575485
:::::::::::::::::::::::::::::
résultat
2039489=5374789+6857797+7459945+3682095+7457929
2039489=5436485+5469013+3456739+4744859+8698722
2039489=8960700+6575485 et ainsi de suite
merci par avance
j'ai un fichier file.csv qui contient deux colonnes et plusieurs ligne, et la première colonne contient des valeurs identiques et la 2 contient des valeurs déférentes du coup je voulais bien afficher la valeur de la première colonne puis les 5 valeur de la 2 colonne ainsi de suite par exemple en script shell
C;D
2039489;5374789
2039489;6857797
2039489;7459945
2039489;3682095
2039489;7457929
2039489;5436485
2039489;5469013
2039489;3456739
2039489;4744859
2039489;8698722
2039489;8960700
2039489;6575485
:::::::::::::::::::::::::::::
résultat
2039489=5374789+6857797+7459945+3682095+7457929
2039489=5436485+5469013+3456739+4744859+8698722
2039489=8960700+6575485 et ainsi de suite
merci par avance
A voir également:
- Traiter les fichier CSV
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
Salut,
Il y a sans doute une solution plus simple et élégante avec
Il y a sans doute une solution plus simple et élégante avec
awk, mais en attendant, celle-ci avec
sedfait le job :
$ sed -n 'h;{n;s/.*;//;H;n;s/.*;//;H;n;s/.*;//;H;n;s/.*;//;H;g;s/;/=/;s/\n/+/g;p}' f1
2039489=5374789+6857797+7459945+3682095+7457929
2039489=5436485+5469013+3456739+4744859+8698722
hello
$ awk -F ";" 'NR>1 {printf $1 "=" $2; for (n=1; n<5; n++){if(getline)printf "+" $2}; print ""}' file.csv
2039489=5374789+6857797+7459945+3682095+7457929
2039489=5436485+5469013+3456739+4744859+8698722
2039489=8960700+6575485
Heureusement, ZorroDubcek est arrivé ;-))