Script Bash: cut/sed?

Script Bash: cut/sed? - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 12-11-2010 à 10:09:59    

Salut à tous,  
 
Voilà maintenant 15 min que je cherche comment faire pour que à partir d'une variable contenant une chaine de caractère (de taille variable), je puisse récupéré seulement une partie de cette chaine.
 
Ex: chaine1=$(who)
     
Et j'aimerais récupérer seulement ce qui est entre parenthèses (sans les parenthèse)
J'ai essayé avec cut, mais la taille étant variable, ça ne marche pas
Et sed, est assez compliqué, et ne réponds pas à mes attentes


Message édité par 69x le 12-11-2010 à 10:11:29
Reply

Marsh Posté le 12-11-2010 à 10:09:59   

Reply

Marsh Posté le 12-11-2010 à 10:27:07    

Je ne comprends pas ce que tu cherches à faire…
chaine1=$(who)
echo $chaine1
renvoie une chaine. C’est cette chaine que tu veux ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 12-11-2010 à 10:29:37    

oui je veux une chaine, qui contient seulement ce qu'il y a entre parenthèse du résultat de la commande who

Reply

Marsh Posté le 12-11-2010 à 10:31:14    

Bah, tu veux un echo, alors… [:airforceone]


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 12-11-2010 à 10:36:11    

69x@Netbook$ who
69x    pts/0         2010-11-12 09:41 (172:21:25...)
69x    :0             2010-11-12 09:41  
 
69x@Netbook$ qui=$(who)
#donc ma var qui contient "69x        :0         2010-11-12 09:41 (172:21:25...) 69x    :0             2010-11-12 09:41"
Et j'aimerais seulement ce qu'il y a entre parenthèse (et le stocker dans une variable)
Donc var=$(echo $qui | #Et là je bloque...

Reply

Marsh Posté le 12-11-2010 à 11:33:54    

who|sed -r 's#^.*\((.*)\).*$#\1#'

Message cité 1 fois
Message édité par roondar le 12-11-2010 à 11:39:27
Reply

Marsh Posté le 13-11-2010 à 17:41:03    

Merci :) Je vais tester si ça marche

Reply

Marsh Posté le 19-11-2010 à 22:28:28    

who | awk '(NR==1) {print $5}'

Reply

Marsh Posté le 22-12-2010 à 18:55:33    

roondar a écrit :

who|sed -r 's#^.*\((.*)\).*$#\1#'


 
Bonjour,
 
elle est sympa cette commande y aurait-il un moyen d'avoir une explication sur son fonctionnement ??
Je ne suis plus vraiment un bleu en script shell mais étant autodidacte je découvre encore pas mal de chose, notamment la commande SED est assez complexe et j'ai du mal avec celle-ci -_-.
 
Merci.

Reply

Marsh Posté le 22-12-2010 à 21:31:18    

c'est une expression régulière qui va capturer tout ce qu'il trouve entre les parenthèses, et qui supprime le reste.
Plus d'explications ici , http://www.commentcamarche.net/faq [...] s-arrieres

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed