Обработайте каждую строку файла в ударе

Когда я хочу сделать что-то с каждой строкой в файле, я обычно пишу

cat my_file | while read a
do
gzip "$a"
done

gzip является просто примером, это может быть что-либо.

То, что я задаюсь вопросом, - то, если существует другой способ получить строки, чем cat file | while read?

6
задан 15.01.2011, 20:50

2 ответа

Вы не должны использовать cat:

while read line; do
    echo "$line"
done < my_file

Я не думаю, что существует более простой путь все же.

15
ответ дан 07.12.2019, 15:28

Самое простое, я думаю, должно было бы использовать xargs, например,

xargs -L1 gzip < my_file

-L1 опция говорит xargs обработать входную строку того за один раз. Вы могли бы смотреть на параллель GNU также, которая очень похожа на xargs но более мощный в некоторых ситуациях.

3
ответ дан 07.12.2019, 15:28

Теги

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