Awk: Question

Résolu
tlep Messages postés 597 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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 :-)
Configuration: Windows Vista
Firefox 3.0

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    echo "$toto"|awk '{print '"$a"'}' 
    ;-))
    0
  2. tlep Messages postés 597 Statut Membre 118
     
    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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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