From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.4 Message-ID: <48909D9D.9050304@vladinfo.ru> Date: Wed, 30 Jul 2008 20:58:05 +0400 From: "Aleksey E. Birukov" User-Agent: Thunderbird 2.0.0.6 (X11/20070804) MIME-Version: 1.0 To: =?KOI8-R?Q?=FB=C9=CC=CF=D7_=F3=C5=D2=C7=C5=CA?= , ALT Linux sysadmin discuss References: <200807301327.43114.ledest@gmail.com> In-Reply-To: Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit X-AV-Checked: ClamAV Subject: Re: [Sysadmins] awk X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux sysadmin discuss List-Id: ALT Linux sysadmin discuss List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jul 2008 16:58:08 -0000 Archived-At: List-Archive: Шилов Сергей пишет: > В сообщении от 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 С ходу не "просёк" что к чему...