URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7166
[ Назад ]

Исходное сообщение
"Построчный вывод"

Отправлено universite , 08-Фев-08 07:31 
Есть файл с кучей строк в несколько колонок.
Отсортировать по какой-нибудь колонке нет возможности ибо они не уникальны.

Нашел sed -n '1p' file.txt и sed -n '$p' file.txt

А вот как загнать это в цикл for - не знаю...

for i in `cat file.txt | wc -l` ; do

     sed -n '$ip' file.txt
     куча операций со строками ....
     ...
     ...
done

Что есть покрасивее?


Содержание

Сообщения в этом обсуждении
"Построчный вывод"
Отправлено allez , 08-Фев-08 08:51 
>[оверквотинг удален]
>
>for i in `cat file.txt | wc -l` ; do
>
>     sed -n '$ip' file.txt
>     куча операций со строками ....
>     ...
>     ...
>done
>
>Что есть покрасивее?

Вот вам пара способов:


while read i; do
...
...
done < file.txt

cat file.txt | while read i; do
...
...
done



"Построчный вывод"
Отправлено Arpo , 08-Фев-08 08:53 
>[оверквотинг удален]
>
>for i in `cat file.txt | wc -l` ; do
>
>     sed -n '$ip' file.txt
>     куча операций со строками ....
>     ...
>     ...
>done
>
>Что есть покрасивее?

Не совсем понятно в чем задача, но построчно фаил считать можно и так.

cat file.txt|while read LINE
do
        echo $LINE #(любые действия со строкой)
done


"Построчный вывод"
Отправлено universite , 09-Фев-08 00:59 

>cat file.txt|while read LINE
>do
>        echo $LINE #(любые действия
>со строкой)
>done

Thanks. Помогло.


"Построчный вывод"
Отправлено phpcoder , 08-Фев-08 13:32 
[...]
>for i in `cat file.txt | wc -l` ; do

Выражение cat file.txt | wc -l вернёт вам ровно одно число -- количество строк в файле. Цикл выполнится ровно один раз. Это, наверное, не то что вы хотели, верно?

>     sed -n '$ip' file.txt

Это уже FAQ! Если нужно передать sed'у значение переменной, то можно использовать двойные кавычки вместо одинарных. Разница в том, что в одинарных кавычах переменные не подставляются.

>Что есть покрасивее?

Вам тут while + read предлагают.