LINUX.ORG.RU

парсим значение строки в файле. awk?


0

0

есть файл со строкой: OPTIONS (ERRORS=1000, LOAD=20000000, ROWS=500000, BINDSIZE=10000000)

мне нужно написать скрипт считывающий значение ERRORS из данной строки данного файла, т.е. значение 1000. Ковыряюсь с awk, но должен сказать, что я не силен в regular expressions.

Для простоты, подрузамеваем, что в файле только одна строка.

anonymous

Re: парсим значение строки в файле. awk?

добавлю: порядок параметров може менятся, т.е. м/б ROWS LOAD ERRORS ...

anonymous ()

Re: парсим значение строки в файле. awk?

> echo 'OPTIONS (ERRORS=1000, LOAD=20000000, ROWS=500000, BINDSIZE=10000000)' | awk -FERRORS '{ printf $2 }' | awk -F= '{ printf $2 }' | awk -F, '{ printf $1 }'

sda00 ★★★ ()
Ответ на: Re: парсим значение строки в файле. awk? от sda00

Re: парсим значение строки в файле. awk?

> echo 'OPTIONS (ERRORS=1000, LOAD=20000000, ROWS=500000, BINDSIZE=10000000)' | awk -FERRORS= '{ printf $2 }' | awk -F, '{ printf $1 }' | awk -F\) '{ printf $1 }'

(если ERRORS последний)

sda00 ★★★ ()
Ответ на: Re: парсим значение строки в файле. awk? от sda00

Re: парсим значение строки в файле. awk?

а я не знаю будет ERRORS первым или последним!!!

в этом то и прикол, не могу я опираться на запятые и скобки

anonymous ()
Ответ на: Re: парсим значение строки в файле. awk? от anonymous

Re: парсим значение строки в файле. awk?

вот универсальное лекарство:

echo "OPTIONS (LOAD=20000000, ROWS=500000, BINDSIZE=10000000, ERRORS=1000)" | sed "s/)//g"| sed "s/ERRORS=/$/g"| cut -f 2 -d "$" | cut -f 1 -d ","

респект Матвею из Марселя :)

anonymous ()
Ответ на: Re: парсим значение строки в файле. awk? от anonymous

Re: парсим значение строки в файле. awk?

>> в этом то и прикол, не могу я опираться на запятые и скобки

??? у вас всё хорошо с головой ???

> echo 'OPTIONS (ERRORS=1000, LOAD=20000000, ROWS=500000, BINDSIZE=10000000)' | awk -FERRORS= '{ printf $2 }' | awk -F, '{ printf $1 }' | awk -F\) '{ printf $1 }'

буде он первый или последний - какая разница?

sda00 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.