#1 Le 15/03/2010, à 20:24
[resolu] Afficher le mot n°X d'un texte
Bonsoir,
je me posais une question : y a-t-il un moyen simple d'extraire un mot d'un texte en bash ?
Comment va mamie Rouston ?
Je veux (dans cette exemple) le mot 3 : echo ${text:mot3} (commande imaginaire)
mamie
voila, c'est tout con, on peut le faire avec des boucles et co mais dans le cas d'un texte un peu long, ça risque de prendre pas mal de temps...
merci
Dernière modification par Hizoka (Le 16/03/2010, à 09:32)
Kubuntu v64 13.04 -- ATI HD4850
Générateur de fenêtres Zenity -- GUI d'extraction de piste de fichier mkv -- Generateur de code de screencast
En ligne
#2 Le 15/03/2010, à 20:28
Re : [resolu] Afficher le mot n°X d'un texte
hello
je te propose ça :
echo "aa bbbb cc ddd ee ff g" | awk '{print $3}'
-- Toshiba satelliteA100-335 + Ubuntu Jaunty --
Pour les noobs : Bienvenue ! ici la perséverance vous récompense.
Pour les anciens : Merci à vous de partager votre savoir.
Et vive le perl !
Hors ligne
#3 Le 15/03/2010, à 20:31
Re : [resolu] Afficher le mot n°X d'un texte
putain d'awk, il est tellement compliqué mais tellement puissant...
j'arrive pas à le comprendre (là ça va hein
), bien dommage pour moi...
merci beaucoup ![]()
y a-t-il d'autres possibilités ?
Kubuntu v64 13.04 -- ATI HD4850
Générateur de fenêtres Zenity -- GUI d'extraction de piste de fichier mkv -- Generateur de code de screencast
En ligne
#4 Le 15/03/2010, à 20:38
Re : [resolu] Afficher le mot n°X d'un texte
echo $text | cut -d' ' -f3![]()
(utiliser tr -s ' ' juste avant cut s'il y a plusieurs espaces entre les mots)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
Parolier amateur cherche partenaires pour musique libre (avec « et plus si affinités », c'est plus poli).
Hors ligne
#5 Le 15/03/2010, à 20:47
Re : [resolu] Afficher le mot n°X d'un texte
je viens de voir que ces 2 solutions ne fonctionne pas s'il y a des saut de lignes...
mais bon sinon en effet ça fonctionne pas mal ![]()
Kubuntu v64 13.04 -- ATI HD4850
Générateur de fenêtres Zenity -- GUI d'extraction de piste de fichier mkv -- Generateur de code de screencast
En ligne
#6 Le 15/03/2010, à 21:32
Re : [resolu] Afficher le mot n°X d'un texte
cut -d' ' -f3 fichierou
awk '{print $3}' fichierc'est bien plus court et plus clair pour comprendre
donc bien sur tu remplaces fichier par un pipe sur le resultat d'une autre commande
Que les puces d'un millier de chiens galleux infeste le cul de celui qui osera vous gacher ne serai ce
qu'une seule journée de votre vie et que les bras lui soient trop court pour qu'il puisse se le gratter.
Hors ligne
#7 Le 15/03/2010, à 21:42
Re : [resolu] Afficher le mot n°X d'un texte
Il a parlé de texte, pas forcément de fichier.
Pour traiter les sauts de ligne comme des espaces simples,
echo $text | tr '\n' ' ' | cut -d' ' -f3Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
Parolier amateur cherche partenaires pour musique libre (avec « et plus si affinités », c'est plus poli).
Hors ligne
#8 Le 15/03/2010, à 21:44
Re : [resolu] Afficher le mot n°X d'un texte
Il a parlé de texte, pas forcément de fichier.
certes mais c'sst plus facile à comprendre et comme il l'indique il n'est pas sur de comprendre.
![]()
Que les puces d'un millier de chiens galleux infeste le cul de celui qui osera vous gacher ne serai ce
qu'une seule journée de votre vie et que les bras lui soient trop court pour qu'il puisse se le gratter.
Hors ligne
#9 Le 16/03/2010, à 09:32
Re : [resolu] Afficher le mot n°X d'un texte
si si ça y a pas de probleme, je disais simplement que awk est tres complexe mais pas de probleme special avec le bash.
merci à vous.
Kubuntu v64 13.04 -- ATI HD4850
Générateur de fenêtres Zenity -- GUI d'extraction de piste de fichier mkv -- Generateur de code de screencast
En ligne
#10 Le 16/03/2010, à 10:28
Re : [resolu] Afficher le mot n°X d'un texte
Bonjour,
Pas besoin de awk, cut ou encore de tr...
S'il s'agit d'un texte contenu dans une variable :
lesMots=( ${variable} )
echo "Le 3eme mot est : ${lesMots[2]}"Si la source est un fichier :
lesMots=( $(<fichier) )
echo "Le 3eme mot est : ${lesMots[2]}"-- Lucid Lynx --
Hors ligne
#11 Le 16/03/2010, à 10:31
Re : [resolu] Afficher le mot n°X d'un texte
hello
$ var="Comment va mamie Rouston ?"
$ set $(echo $var) ; echo $3
mamie
$Hors ligne
#12 Le 16/03/2010, à 10:42
Re : [resolu] Afficher le mot n°X d'un texte
toujours aussi fort ce totor... je cherchais quelque chose en bash, voila c'est trouvé ![]()
pas mal non plus le coup du "set" ![]()
de plus ces 2 solutions fonctionnent avec les sauts de lignes ![]()
merci à vous
Dernière modification par Hizoka (Le 16/03/2010, à 10:43)
Kubuntu v64 13.04 -- ATI HD4850
Générateur de fenêtres Zenity -- GUI d'extraction de piste de fichier mkv -- Generateur de code de screencast
En ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [resolu] Afficher le mot n°X d'un texte