Commande grep

Résolu/Fermé
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 23 mars 2009 à 22:44
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 24 mars 2009 à 07:40
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,
A voir également:

6 réponses

saru99 Messages postés 24 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 23 mars 2009
23 mars 2009 à 22:52
essaie plutt :
titre =$( `grep "^T " $2` )
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
23 mars 2009 à 22:56
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...
0
saru99 Messages postés 24 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 23 mars 2009
23 mars 2009 à 22:56
la syntaxe exacte est :

test=$(grep "^T" fichier)

++
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
23 mars 2009 à 22:58
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
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
23 mars 2009 à 23:00
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
--------------------------
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
23 mars 2009 à 23:04
Echo --------------------------
echo titre :
test=$(grep "^T" $2)
echo $titre
echo --------------------------
grep "^T " $2
echo -------------------------- 
Remplace "test" par "titre" et ça devrait aller mieux ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
23 mars 2009 à 23:09
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
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 à 07:40
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]$
;-))
0