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

Исходное сообщение
"Распарсить текстовые строки"

Отправлено universite , 17-Мрт-14 02:41 
Имеется файл с кучей строк
В каждой строке - 10 ячеек
Нужно присвоить соответствующей переменной значение каждой ячейки в строке:

...
# echo $LINE
var1=$(echo "$LINE" | cut -f 1 )
var2=$(echo "$LINE" | cut -f 2 )
var3=$(echo "$LINE" | cut -f 3 )
...

Баша нет. Массив нет возможности использовать.
Хочется обойтись наименьшими  ресурсами, ибо строк очень много.


Содержание

Сообщения в этом обсуждении
"Распарсить текстовые строки"
Отправлено михалыч , 17-Мрт-14 09:41 
>[оверквотинг удален]
>
 
> ...
> # echo $LINE
>  var1=$(echo "$LINE" | cut -f 1 )
>  var2=$(echo "$LINE" | cut -f 2 )
>  var3=$(echo "$LINE" | cut -f 3 )
> ...
>

> Баша нет. Массив нет возможности использовать.
> Хочется обойтись наименьшими  ресурсами, ибо строк очень много.

perl не предлагать? ))


"Распарсить текстовые строки"
Отправлено universite , 17-Мрт-14 14:17 
>>[оверквотинг удален]
> perl не предлагать? ))

Не.


"Распарсить текстовые строки"
Отправлено Andrey Mitrofanov , 17-Мрт-14 11:39 
> Имеется файл с кучей строк
> В каждой строке - 10 ячеек
> Нужно присвоить соответствующей переменной значение каждой ячейки в строке:

while read a b c d e f g h i j; do
    ...
done </path/to/big/file

> ...
> # echo $LINE
>  var1=$(echo "$LINE" | cut -f 1 )
> Баша нет. Массив нет возможности использовать.

А что есть-то?? POSIX sh??

> Хочется обойтись наименьшими  ресурсами, ибо строк очень много.

Читать много строк шеллом -- это совсем не "мало ресурсов", я тебя уверяю.


"Распарсить текстовые строки"
Отправлено universite , 17-Мрт-14 14:26 
>> Имеется файл с кучей строк
>> В каждой строке - 10 ячеек
>> Нужно присвоить соответствующей переменной значение каждой ячейки в строке:
> while read a b c d e f g h i j;
> do
>     ...
> done </path/to/big/file

буду пробовать...

> А что есть-то?? POSIX sh??

Есть.


"Распарсить текстовые строки"
Отправлено universite , 18-Мрт-14 15:19 
>>> Имеется файл с кучей строк
>>> В каждой строке - 10 ячеек
>>> Нужно присвоить соответствующей переменной значение каждой ячейки в строке:
>> while read a b c d e f g h i j;
>> do
>>     ...
>> done </path/to/big/file
> буду пробовать...

Если одно из полей пустое, то происходит смещение влево переменных, которые справа.