[bash] как проще всего пройтись по строкам?

a10063

задача такая: сделать цикл, чтобы переменная цикла пробегала последовательно строки файла
есть у меня одно извращенческое решение, но хотелось бы что-нить попроще
какие варианты?

rosali

perl -n -e
вряд ли что-то лучше есть

a10063

нет, это нечестно
тогда уж надо на перле писать, а я хочу на баше (используя гну утилз, конечно)

Chupa

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

Julie16


exec < $ 1
while read line
do
echo $line
done

a10063

оно!
про read я и забыл...
спасибо!

voronina

часто помогает perl -pe
и awk, если строчки надо делить по столбцам

hashion

sed, фигли...

a10063

могу еще вопросик подкинуть, который меня давно интересует: как проще всего получить переменную из subshell в shell?
когда-то давно делал через временный файл, но это некрасивое решение, имхо
что скажут отцы?

hashion

А может что-то не понимаю, но может eval?
типа ``
Ты пример покажи

a10063

например при пайпе образуется сабшелл
$ n=0; echo "test" | n=2; echo $n
0
как узнать о двойке?

Julie16

m=`n=2; echo $n`
echo $m

a10063

не, нехорошо
внутри может быть вывод в stdout, тогда все рушится

Julie16

Иначе ИМХО никак.

hashion

1>&2 или наоборот...

a10063

не понял, как это поможет
нужно, чтобы вывод в stdout оставался, пусть даже перехваченный и выведенный вручную

sergey_m

Началось. .
Оставить комментарий
Имя или ник:
Комментарий: