Awk: Question

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 24 mars 2009 à 16:03
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 mars 2009 à 16:37
Bonjour à tous,

j'ai un petit souci avec awk:

#!/bin/bash

a=2
toto="U trunk/site/thierry.php A trunk/site/thierry2.php A trunk/site/thierry3.php"
echo "$toto"|awk '{print $a}'

=> me renvoie toute la chaine "toto", comme si "$a" valait "0".

Comment puis-je mettre une variable dans le {print } de awk ?

Merci pour votre retour :-)

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
24 mars 2009 à 16:19
Salut,
echo "$toto"|awk '{print '"$a"'}' 
;-))
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
24 mars 2009 à 16:26
Non çà marche po.

En fait j'ai trouvé c'était :

echo "$toto"|awk "{print \$"$a"}"

Pour une fois j'ai la réponse avant jipicy lol :-))
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
24 mars 2009 à 16:37
Si j'avais réfléchi 2 secondes, il est vrai que j'aurai vu que ma réponse donnée "2" et non pas "$2" ;-((

Merci ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
24 mars 2009 à 16:37
Salut,

Ton backslash est inutile ;-))
lami20j@debian:~$ a=2
lami20j@debian:~$ toto="U trunk/site/thierry.php A trunk/site/thierry2.php A trunk/site/thierry3.php"
lami20j@debian:~$ echo "$toto"|awk "{print \$"$a"}"
trunk/site/thierry.php
lami20j@debian:~$ echo "$toto"|awk "{print $"$a"}"
trunk/site/thierry.php

0