Вам не нужно использовать cat
:
while read line; do echo "$line" done < my_file
Я не думаю, что есть более простой способ, хотя.
Когда я хочу что-то сделать с каждой строкой в файле, я обычно пишу
cat my_file | while read a do gzip "$a" done
GZIP это просто пример, это может быть что угодно.
Что мне интересно, есть ли другой способ получить строки, чем cat file | while read
?
Вам не нужно использовать cat
:
while read line; do echo "$line" done < my_file
Я не думаю, что есть более простой способ, хотя.
Я думаю, что проще всего было бы использовать xargs
, например,
xargs -L1 gzip < my_file
-L1
Опция указывает xargs
обрабатывать одну строку ввода в то время. Вы также можете взглянуть на параллельную GNU, которая очень похожа, xargs
но в некоторых ситуациях более мощна.
IFS="\n\b"; for i in $MYROWOFCONTENT; do echo $i; done;