Commande grep [Résolu/Fermé]

Signaler
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
-
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
-
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,

6 réponses

Messages postés
24
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
23 mars 2009

essaie plutt :
titre =$( `grep "^T " $2` )
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 764
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...
Messages postés
24
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
23 mars 2009

la syntaxe exacte est :

test=$(grep "^T" fichier)

++
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
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
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
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
--------------------------
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 764
Echo --------------------------
echo titre :
test=$(grep "^T" $2)
echo $titre
echo --------------------------
grep "^T " $2
echo -------------------------- 
Remplace "test" par "titre" et ça devrait aller mieux ;-))
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 764
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]$
;-))