#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)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
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 ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
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
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 15/03/2010, à 20:32
- francoisp31
Re : [resolu] Afficher le mot n°X d'un texte
cut -d' ' -f3 fichier
ou
awk '{print $3}' fichier
c'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' ' -f3
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
#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.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
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
$
En 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)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne