Выполнить команду для каждой строки файла в bash, пропуская строки как стандартный ввод

1043
Tgr

Как передать некоторые входные данные в командную строку за строкой (т.е. вызывать команду для каждой строки)?

xargs не работает, потому что передает строки как аргументы, а не как стандартный ввод.

Конкретным случаем, когда это произошло, было декодирование файла, строки которого были строками в кодировке base64.

3

1 ответ на вопрос

8
Tgr

Может быть сделано с помощью цикла while:

produce | while IFS= read -r line; do echo "$line" | process; done | consume 

(для некоторых произвольно produce, process, consumeкоманды, которые все используют стандартный ввод / вывод), но Мех. Должен быть более элегантный способ сделать это.

(Точка с запятой после `line`, а не после` do`) Campa 9 лет назад 0

Похожие вопросы