Получая корсей, чтобы отправить одно слово за один раз в замазку
Привет просто интересно, как получить cowsay
читать по одному слову за раз из текстового файла. Сейчас я нахожусь на первом месте, использую шпаклевку и действительно нуждаюсь в помощи.
3 ответа
Кажется, это редкий случай, когда разделение слов действительно желательно:
for word in $(<file.txt); do cowsay "$word"; sleep 1; done
(sleep
команда необязательна). Или всегда есть xargs
:
xargs -a file.txt -n1 cowsay
Вот то, что я придумал очень быстро. Я поместил одну строку в тестовый файл, а затем перевел ее на cowsay.
terrance@terrance-ubuntu:~$ cat cstest.txt
This is a test file to test cowsay
Я установил его, чтобы прочитать каждую строку, а затем сделать for loop
каждой строки, чтобы прочитать каждое слово. Пример ниже:
:~$ 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 |
|| ||
Каждая отдельная строка этой команды будет выглядеть так:
:~$ cat cstest.txt | while read line
>do
>for word in $line
>do
>cowsay $word
>done
>done
Надеюсь это поможет!
Python однострочный:
python -c 'import sys,subprocess;[subprocess.call(["cowsay",w]) for l in sys.stdin for w in l.split()]' < words.txt
Образец прогона:
$ 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 |
|| ||
$