Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/09/2007, 14h13   #1
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 53
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2004
Messages : 53
Points : 15
Points : 15
Par défaut indexage inverse pour awk

Bonjour,

Je cherche a faire ceci :

echo "a_b_c_d" | awk -F "_" '{print $1"."$2"."$3"."$4}'

mais je voudrais que $1 corresponde a d donc au dernier element
$2 -> c
$3 -> b
$4 -> a
Je voudrai donc avoir un indexe inversé pour les différents éléments que me retourn awk
Merci.
alaparra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2007, 14h51   #2
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 53
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2004
Messages : 53
Points : 15
Points : 15
j'ai trouvé une méthode :

echo "a_b_c_d" | awk -F "_" '{print $(NF-3)"."$(NF-2)"."$(NF-1)"."$(NF)}'
qui me donne :
a.b.c.d

maitenant j'aimerais pouvoir faire exactement la meme chose mais sans connaitre le nombre d'elements.

echo "a_b_c_d_......._n" | awk -F "_" '{print ........"."$(NF-3)"."$(NF-2)"."$(NF-1)"."$(NF)}'
je voudrais :
a.b.c.d........n

En gros il me faudrai une sorte de boucle me permettant de faire du print $(NF-n) avec n <= NF.
Mais je connai pas grand chose en shell si kkun avai une idée se serai cool.

Merci.
alaparra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2007, 22h06   #3
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Ça ne fait pas exactement ce que tu veux, je te laisse paufiner
http://www.shellunix.com/awk.html


liste.txt

Code :
1
2
3
 
1_2_3_4_5_6
1_2_3_4_5_6_7_8
Code :
1
2
3
4
5
6
7
8
 
awk -F"_" '
{
	for (DecrIndice=NF ; DecrIndice > 0 ; DecrIndice--) {
		printf("%s.",$DecrIndice)
	}
	print ""
} ' liste.txt
Résultat :

Code :
1
2
3
 
6.5.4.3.2.1.
8.7.6.5.4.3.2.1.
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 14h13   #4
Futur Membre du Club
 
Inscription : novembre 2004
Messages : 53
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2004
Messages : 53
Points : 15
Points : 15
Merci pour ta reponse.
c'est ce que je cherchais
alaparra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h46.


 
 
 
 
Partenaires

Hébergement Web