The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Нужно помощь в парсинге файлов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Нужно помощь в парсинге файлов"  +/
Сообщение от universite email(ok) on 28-Авг-14, 03:00 
Есть куча файлов с содержимым (строк много):
val1=3
val2=1
val3=15
val4=12
val5=24
val6=32
val7=test2
val8=test4
...

Нужно сделать кучу сравнений с переменными.
Непонятно как сделать, чтоб в awk переменные были $1=3, $2=1 ...

приходится делать:

val1=`grep val1 file | awk -F= '{ print $2;}'
val2=`grep val2 file | awk -F= '{ print $2;}'
...

или

val=`cat file`
val1=`echo $val | awk '{ print $1;}' | awk -F= '{ print $2;}'
val2=`echo $val | awk '{ print $2;}' | awk -F= '{ print $2;}'
...

Подскажите направление для ускорения парсинга...

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нужно помощь в парсинге файлов"  +/
Сообщение от pavlinux (ok) on 28-Авг-14, 05:16 
$ awk 'BEGIN {FS="=";} NR==1 {print $2};' test;

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Нужно помощь в парсинге файлов"  +/
Сообщение от universite email(ok) on 28-Авг-14, 16:27 
> $ awk 'BEGIN {FS="=";} NR==1 {print $2};' test;

Не работает.


awk -F= '{ print $2;}' file

Выдает вторую колонку при разделителе =

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Нужно помощь в парсинге файлов"  +/
Сообщение от Andrey Mitrofanov on 28-Авг-14, 09:41 
> Подскажите направление для ускорения парсинга...

Ускорение "парсинга" - один проход awk-ом и логика в нём.

<file.txt awk -F= '{ar[$1]=$2}END{if(ar["var1"]==ar["var2"])print"Да!"}'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Нужно помощь в парсинге файлов"  +/
Сообщение от universite email(ok) on 28-Авг-14, 16:25 
>> Подскажите направление для ускорения парсинга...
> Ускорение "парсинга" - один проход awk-ом и логика в нём.
> <file.txt awk -F= '{ar[$1]=$2}END{if(ar["var1"]==ar["var2"])print"Да!"}'

Благодарю.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Нужно помощь в парсинге файлов"  +/
Сообщение от Аноним (??) on 28-Авг-14, 18:29 
>> <file.txt awk -F= '{ar[$1]=$2}END{if(ar["var1"]==ar["var2"])print"Да!"}'
> Благодарю.

Смотри не насупи на спец эффект при:
var1=TRUE
var2=TRUE
...
var1=FALSE

В остальном - Андрейка очень дал хороший совет. Молодец :)

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру