Commande grep

Résolu
crazyghandi Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Membre Dernière intervention  
 
essaie plutt :
titre =$( `grep "^T " $2` )
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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   Statut Membre Dernière intervention  
 
la syntaxe exacte est :

test=$(grep "^T" fichier)

++
0
crazyghandi Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   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
0
crazyghandi Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   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
--------------------------
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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   Statut Membre Dernière intervention   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
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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