#1 Le 15/03/2010, à 19:24
- Hizoka

[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, à 08:32)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#2 Le 15/03/2010, à 19:28
- hardball

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, à 19:31
- Hizoka

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 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#4 Le 15/03/2010, à 19:38
- Elzen

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…
timezone[blocklist]
Hors ligne
#5 Le 15/03/2010, à 19:47
- Hizoka

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 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#6 Le 15/03/2010, à 20:32
- francoisp31

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, à 20:42
- Elzen

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…
timezone[blocklist]
Hors ligne
#8 Le 15/03/2010, à 20:44
- francoisp31

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, à 08:32
- Hizoka

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 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#10 Le 16/03/2010, à 09:28
- Totor

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, à 09:31
- credenhill
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, à 09:42
- Hizoka

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, à 09:43)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne