Як циклічно виконати сценарій парам з текстового файлу?


0

Мені потрібно запустити ключове слово ./pythonScript один раз для кожного ключового слова в текстовому файлі, як це зробити з терміналу gnome? (без необхідності змінювати pythonScript)

псевдо-код:

for each keyword in file:
  ./pythonScript keyword
  waitfor(pythonScript to finish)

Відповіді:


1

Припустимо, що є одне ключове слово на рядок, ось чиста оболонка, портативне рішення:

while read -r line; do
    ./pythonScript "$line"
done <file

Ось дещо простіше рішення для Linux:

<file xargs -d '\n' -n 1 ./pythonScript

Обидва рішення дозволяють будь-якому символу, окрім нового рядка, відображатися у ключовому слові.


0

Чи є ключове слово у рядку з файлу? Якщо так,

while read keyword
do
    ./pythonScript $keyword
done < file

Так, ключові слова одне на рядок (але деякі фрази типу "keyw1 та keyw2" у тому ж рядку), чи все-таки це працюватиме?
ldabl

0

Якщо у вас встановлений паралельний параметр GNU http: // www.gnu.org/software/parallel/, ви можете це зробити:

cat file | parallel ./pythonScript

Це буде виконувати завдання паралельно, може бути дуже корисним, якщо ви працюєте на багатоядерній машині.

Перегляньте вступне відео для GNU Parallel, щоб дізнатися більше: http://www.youtube.com/watch?v=OpaiGYxkSuQ

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.