Bonjour, je me demande comment obtenir cowsay
pour lire un mot à la fois à partir d'un fichier texte. Je suis au point zéro en ce moment, j'utilise Putty et j'ai vraiment besoin d'aide.
Réponses
Trop de publicités?
steeldriver
Points
118154
Terrance
Points
35422
Voici quelque chose que j'ai trouvé très rapidement. J'ai mis une ligne dans un fichier de test et je l'ai envoyé à cowsay.
terrance@terrance-ubuntu:~$ cat cstest.txt
This is a test file to test cowsay
Je le configure pour lire chaque ligne, puis je fais un for loop
de chaque ligne pour lire chaque mot. Exemple ci-dessous :
:~$ cat cstest.txt | while read line; do for word in $line; do cowsay $word; done; done
______
< This >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
____
< is >
----
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
___
< a >
---
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
______
< test >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
______
< file >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
____
< to >
----
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
______
< test >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
________
< cowsay >
--------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Chaque ligne individuelle de cette commande ressemblerait à :
:~$ cat cstest.txt | while read line
>do
>for word in $line
>do
>cowsay $word
>done
>done
J'espère que cela vous aidera !
Sergiy Kolodyazhnyy
Points
97292
Python one-liner :
python -c 'import sys,subprocess;[subprocess.call(["cowsay",w]) for l in sys.stdin for w in l.split()]' < words.txt
Exemple d'exécution :
$ cat words.txt
this is a test
$ python -c 'import sys,subprocess;[subprocess.call(["cowsay",w]) for l in sys.stdin for w in l.split()]' < words.txt
______
< this >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
____
< is >
----
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
___
< a >
---
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
______
< test >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
$