[Sysadmins] awk
Aleksey E. Birukov
=?iso-8859-1?q?birukov_=CE=C1_vladinfo=2Eru?=
Ср Июл 30 20:58:05 MSD 2008
Шилов Сергей пишет:
> В сообщении от 30 июля 2008 Led написал:
>
>> В сообщении от Wednesday 30 July 2008 12:41:05 Sergey Shilov написал(а):
>>
>>> В сообщении от 30 июля 2008 Aleksey E. Birukov написал:
>>>
>>>>> Врядли. Я так понял, хотелось получить конкретный номерной match в
>>>>> случае когда FS - regexp
>>>>>
>>>> Да. Именно так.
>>>>
>>> echo "aaa_bbb_ccc" | NNN=2 awk -F"_[bc]" '{ printf "field%i=%s\n",
>>> (ENVIRON["NNN"]), $(ENVIRON["NNN"]) }
>>>
>> "Номерной match" FS, а не field
>>
>>
> Эээ..., тогда "в лоб":
> из "aaa_bbb_ccc_bad" в цикле берем в M 2-й match регэкспа "_[bc]" и печатаем полученное :-)
>
> echo "aaa_bbb_ccc_bad" | gawk -v N=2 -- '{ i = 0 ; S = $0 ; while ( match(S, /_[bc]/) != 0 ) { i++ ; M = substr(S, RSTART, RLENGTH) ; S = substr(S, RSTART+RLENGTH ) ; { if ( i == N ) { printf "%s\n", M ; break } } }'
>
Результат выполнения команды:
gawk: cmd.
line:1:
^ unexpected newline or end of string
С ходу не "просёк" что к чему...
Подробная информация о списке рассылки Sysadmins