Shell: récupération de champ dans une ligne
Résolu/Fermé
remousse
Messages postés
299
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2014
-
14 juin 2012 à 15:44
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 - 14 juin 2012 à 16:41
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 - 14 juin 2012 à 16:41
A voir également:
- Shell: récupération de champ dans une ligne
- Classic shell windows 11 - Télécharger - Personnalisation
- Shell startup windows 10 - Guide
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Efi shell version 2.50 - Forum Windows 10
- Shell infrastructure host c'est quoi ✓ - Forum Windows 10
3 réponses
dubcek
Messages postés
18765
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
20 février 2025
5 624
14 juin 2012 à 16:19
14 juin 2012 à 16:19
hello
il faut un espace entre Champ et 1 pour Champ1 ?
il faut un espace entre Champ et 1 pour Champ1 ?
$ cat a0 1;2;3 13;12;11 20;2;3 $ $ awk -v RS="[;\n]" '{print "Champ" (NR-1)%3+1 ":" $0}' a0 Champ1:1 Champ2:2 Champ3:3 Champ1:13 Champ2:12 Champ3:11 Champ1:20 Champ2:2 Champ3:3 $
remousse
Messages postés
299
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2014
6
14 juin 2012 à 16:33
14 juin 2012 à 16:33
Ok je viens de tester et en sortie j'ai ceci:
Champ1:11;2;3;4;5;6;7;8;9;10;11;12;13
1;2;3;4;5;6;7;8;9;10;11;12;14
13;12;11;10;9;8;7;6;5;4;3;2;1
20;2;3;4;5;6;7;8;9;10;11;12;13
Le 1 est bien renseigné pour champ 1 mais la suite du fichier vient se concaténer.
Voilà exactement ce que j'ai comme code :
Je n'ai pas que 3 champs j'en ai 13 mais est ce que cela fait modifier la commande ? J'ai peut être également mal exposer mon sujet au départ...
Champ1:11;2;3;4;5;6;7;8;9;10;11;12;13
1;2;3;4;5;6;7;8;9;10;11;12;14
13;12;11;10;9;8;7;6;5;4;3;2;1
20;2;3;4;5;6;7;8;9;10;11;12;13
Le 1 est bien renseigné pour champ 1 mais la suite du fichier vient se concaténer.
Voilà exactement ce que j'ai comme code :
$rep/echo "Champ 1:'$rep/awk -v RS="[;\n]" '{print (NR-1)%3+1 $0}' $f'" >> $fileName $rep/echo "Champ 2:'$rep/awk -v RS="[;\n]" '{print (NR-1)%3+1 $0}' $f'" >> $fileName $rep/echo "Champ 3:'$rep/awk -v RS="[;\n]" '{print (NR-1)%3+1 $0}' $f'" >> $fileName
Je n'ai pas que 3 champs j'en ai 13 mais est ce que cela fait modifier la commande ? J'ai peut être également mal exposer mon sujet au départ...
dubcek
Messages postés
18765
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
20 février 2025
5 624
14 juin 2012 à 16:41
14 juin 2012 à 16:41
il faut exécuter awk qu'une fois
$ cat a00 1;2;3;4;5;6;7;8;9;10;11;12;13 1;2;3;4;5;6;7;8;9;10;11;12;14 13;12;11;10;9;8;7;6;5;4;3;2;1 20;2;3;4;5;6;7;8;9;10;11;12;13 $ $ awk -v RS="[;\n]" '{print "Champ" (NR-1)%13+1 ":" $0}' a00 | head Champ1:1 Champ2:2 Champ3:3 Champ4:4 Champ5:5 Champ6:6 Champ7:7 Champ8:8 Champ9:9 Champ10:10 $ $