Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 15/03/2010, à 20: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 ?

texte a écrit :

Comment va mamie Rouston ?

Je veux (dans cette exemple) le mot 3 : echo ${text:mot3} (commande imaginaire)

resultat a écrit :

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)

Hors ligne

#2 Le 15/03/2010, à 20: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, à 20: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 tongue ), bien dommage pour moi...

merci beaucoup smile

y a-t-il d'autres possibilités ?

Hors ligne

#4 Le 15/03/2010, à 20:38

Elzen

Re : [resolu] Afficher le mot n°X d'un texte

echo $text | cut -d' ' -f3

wink

(utiliser tr -s ' ' juste avant cut s'il y a plusieurs espaces entre les mots)

Hors ligne

#5 Le 15/03/2010, à 20: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 smile

Hors ligne

#6 Le 15/03/2010, à 21: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, à 21: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

Hors ligne

#8 Le 15/03/2010, à 21:44

francoisp31

Re : [resolu] Afficher le mot n°X d'un texte

ArkSeth a écrit :

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.
wink


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

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.

Hors ligne

#10 Le 16/03/2010, à 10: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, à 10: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, à 10: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é smile

pas mal non plus le coup du "set" smile

de plus ces 2 solutions fonctionnent avec les sauts de lignes smile

merci à vous

Dernière modification par Hizoka (Le 16/03/2010, à 10:43)

Hors ligne

Haut de page ↑