[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