[Sysadmins] awk

Шилов Сергей =?iso-8859-1?q?hsvhome_=CE=C1_mail=2Eru?=
Ср Июл 30 19:03:00 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 } } }' 

По мотивам
http://www.math.spbu.ru/user/rus/cluster/Doc/Library/awk_baluev/awk_bal_oglav.shtml
с учетом фигурных скобок из
http://www.ln.com.ua/~openxs/projects/man/uman024.html

---
С уважением
С.Шилов



Подробная информация о списке рассылки Sysadmins