ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Значение переменной в awk
@ 2005-06-14  3:27 php-coder
  2005-06-14  4:55 ` Yura Kalinichenko
  2005-06-14  5:21 ` Pavel Usischev
  0 siblings, 2 replies; 3+ messages in thread
From: php-coder @ 2005-06-14  3:27 UTC (permalink / raw)
  To: community


    Подскажите пожалуйста, как подставить значение переменной в
    awk-выражение.

    Есть следующая комманда:

    awk '{if(NR>30&&NR<47){if($1>10){$1++;print $0}else{print $0}}else{print $0}}' Translation.m

    Но мне нужно, чтобы условие в нем было не постоянным, как сейчас, а
    чтобы вмечто 30 и 47 подставлялись числа.

    BEGIN=`awk '/set 3/{print NR+2}' Translation.m`
    END=`awk '/set 4/{print NR-2}' Translation.m`

    А вот подставить не получается:

    [c0der@mycomp ~]$ awk '{if(`echo -n "NR>"$BEGIN"&&NR<"$END`){if($1>10){$1++;print $0}else{print
    $0}}else{print $0}}' Translation.m 
    awk: {if(`echo -n "NR>"$BEGIN"&&NR<"$END`){if($1>10){$1++;print
    $0}else{print $0}}else{print $0}}
    awk:     ^ invalid char '`' in expression
    [c1der@mycomp ~]$

    Прошу помощи.

    Если надо, то могу объяснить задачу:
    есть файл формата:

    $set 1

    1 bla
    2 bla-bla
    3 bla-bla-bla

    $set 2

    1 blaa
    2 blaa-blaa
    3 blaa-blaa

    Таких секций в нем много. Мне нужно в третью секцию вставить еще одну
    строчку. Да так чтобы все последующие за ней увеличились на единицу.
    И это нужно только в одной секции подправить. Т.е. Было:

    $set 3

    1 one
    2 two
    ...
    9 nine
    10 ten
    ...
    
    $set 4

    А должно стать:

    $set 3

    1 one
    2 two
    ...
    9 NEW!
    10 nine
    11 ten
    ...
    
    $set 4

    Вот. Такая вот задачка :) Не хочется ради нее писать что-либо на
    Перле или Питоне. Хочется в одну строчку ;) В одну строчку-то сделал,
    да вот не могу теперь сделать, чтобы этим однострочником кучу файлов
    обработать.

    Благодарю за помощь!

-- 
+ php-coder
+ php-coder[at]altlinux[dot]ru





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-06-14  5:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-14  3:27 [Comm] Значение переменной в awk php-coder
2005-06-14  4:55 ` Yura Kalinichenko
2005-06-14  5:21 ` Pavel Usischev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git