Commande grep

Résolu
Bonjour,
je voudrais inserer le contenu d'une commande grep dans une variable.

J'ai essaye :
$titre = `grep "^T " $2`
echo --------------
echo $titre
$2 etant un .txt qui d'ailleurs s'ouvre comme il faut

dans le terminal :

iceman@iceman-PC:/media/ICEWORK/SUSU/Informatique/TP Info/UNIX/2BTP4/v1$ sh TP4.sh convertir test.txt
--------------------
Bonjour iceman...
Tu es actuellement dans le répertoire /media/ICEWORK/SUSU/Informatique/TP Info/UNIX/2BTP4/v1
-----------------------
: not found
convertir
fichier a convertir : test.txt
test.txt[1:3]
TP4.sh: 32: =: not found
--------------

iceman@iceman-PC:/media/ICEWORK/SUSU/Informatique/TP Info/UNIX/2BTP4/v1$

merci d'avance pour vos reponses
cordialement,
Configuration: Linux
Firefox 3.0.7

6 réponses

  1. Modérateur
    Re-

    Une solution entre autre :
    [tmpfs]$ ligne='T iTunes is Anti-Web // TODO: find a more "catchy" name'
    
    [tmpfs]$ echo ${ligne%//*}
    T iTunes is Anti-Web
    
    [tmpfs]$ echo ${ligne#*//}
    TODO: find a more "catchy" name
    
    [tmpfs]$
    ;-))
    1. ok super ca marche merci beaucoup.

      par extension, comment puis je faire la meme chose pour un caracter qui n'est pas forcement en debut de ligne ?

      par exemple :

      T iTunes is Anti-Web // TODO: find a more "catchy" name
      mettre "iTunes is Anti-Web" dans $titre
      et "TODO: find a more "catchy" name" dans $commentaire

      merci encore
      1. echo --------------------------
        echo titre :
        test=$(grep "^T" $2)
        echo $titre
        echo --------------------------
        grep "^T " $2
        echo --------------------------

        donne :
        --------------------------
        titre :

        --------------------------
        T iTunes is Anti-Web // TODO: find a more "catchy" name
        --------------------------
        1. Modérateur
          Echo --------------------------
          echo titre :
          test=$(grep "^T" $2)
          echo $titre
          echo --------------------------
          grep "^T " $2
          echo -------------------------- 
          Remplace "test" par "titre" et ça devrait aller mieux ;-))
      2. bonsoir, merci beaucoup pour la reponse.

        j'ai donc essaye :
        echo --------------------------
        echo titre :
        titre =$( `grep "^T " $2` )
        echo $titre
        echo --------------------------
        grep "^T " $2
        echo --------------------------

        ce qui donne :

        --------------------------
        titre :
        TP4.sh: 42: T: not found
        TP4.sh: 42: titre: not found

        --------------------------
        T iTunes is Anti-Web // TODO: find a more "catchy" name
        --------------------------

        donc le grep marche bien mais $titre n'est pas modifiee
        1. essaie plutt :
          titre =$( `grep "^T " $2` )
          1. Modérateur
            C'est ou l'un :

            titre=`grep "^T " $2`

            ou l'autre :

            titre=$(grep "^T " $2)

            mais pas les deux ;-\

            Et tant qu'à faire privilégier la 2nd...