Afficher chaque cinquième colonne et les précédentes
Résolu
S-Killer
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
S-Killer Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
S-Killer Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je dois afficher chaque cinquième colonne d'une ligne et les colonnes précédentes. C'est à dire que je dois parcourir la ligne et à chaque fois que je rencontre une colonne multiple de 5, je l'affiche ainsi que les colonnes précédentes.
j'ai utilisé
awk -F: '{for(i=5; i>=1; i--){print $i}}' passwd
mais ceci ne m'affiche que de la 5ème à la première colonne. j'ai besoin d'aide.
je dois afficher chaque cinquième colonne d'une ligne et les colonnes précédentes. C'est à dire que je dois parcourir la ligne et à chaque fois que je rencontre une colonne multiple de 5, je l'affiche ainsi que les colonnes précédentes.
j'ai utilisé
awk -F: '{for(i=5; i>=1; i--){print $i}}' passwd
mais ceci ne m'affiche que de la 5ème à la première colonne. j'ai besoin d'aide.
A voir également:
- Afficher chaque cinquième colonne et les précédentes
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Afficher appdata - Guide
2 réponses
hello
pour clarifier, tu veux afficher les colonnes 5 1 2 3 4 10 6 7 8 9 etc ?
pour clarifier, tu veux afficher les colonnes 5 1 2 3 4 10 6 7 8 9 etc ?
S-Killer
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
Oui justement c'est ce que je veux faire!
une méthode un peu simpliste si il y a moins de 21 champs
$ awk 'BEGIN {FS=OFS=":"; m=split("5:1:2:3:4:10:6:7:8:9:15:11:12:13:14:20:16:17:18:19", a)} {for(n=1; n<m; n++){if (c=$a[n])printf c FS; else {print ""; next}}}' fichier
"Speech Dispatcher,,,:speech-dispatcher:x:107:29"
c'est ce qui doit être le résultat. Et si j'avais 10 champs par exemple comme ceci
"speech-dispatcher:x:107:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh:bien:bonjour:rfin"
le résultat doit être
"Speech Dispatcher,,,:speech-dispatcher:x:107:29:rfin::/var/run/speech-dispatcher:/bin/sh:bien:bonjour"
c'est ce qui doit être le résultat. Et si j'avais 10 champs par exemple comme ceci
"speech-dispatcher:x:107:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh:bien:bonjour:rfin"
le résultat doit être
"Speech Dispatcher,,,:speech-dispatcher:x:107:29:rfin::/var/run/speech-dispatcher:/bin/sh:bien:bonjour"