ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: ASA <llb@udm.ru>
To: Konstantin Vinokurov <community@altlinux.ru>
Subject: [Comm] Re[2]: [Comm] Re[2]: [Comm] Re[2]: [Comm] S: .rpm name normalizer (was: Кэш apt)
Date: Wed, 28 May 2003 22:50:09 +0500
Message-ID: <958595626.20030528225009@udm.ru> (raw)
In-Reply-To: <200305282012.58578.altlinux@tut.by>

Hello Konstantin,

Wednesday, May 28, 2003, 10:12:58 PM, you wrote:

>> >> KV>         if [ ! -z $(cat /root/CD.1 /root/CD.2 | grep
>> >> $j) ]
>> >>
>> >>          if grep -qs $j /root/CD.[12]
>>
>> KV> Как вариант. Мне нравится if со скобками.
>>
>> Сработает быстрее. Для длинных файлов - на порядок.

KV> Т.е. если со скобками
KV> if [ grep -qs $j /root/CD.[12] ]
Это вообще не сработает. Я не писал скобок. man test
if grep -qs $j /root/CD.[12]

KV> быстрее чем
KV> if [ ! -z $(cat /root/CD.1 /root/CD.2 | grep $j) ]
KV> ?┼э

Да.  Потому  что  grep  -q немедленно вернет результат "истина",
которое  затем  сразу  проанализирует  if.  В  вашем  же  случае
вызывается команда [ (посмотрите '/bin/[') у которой аргументами
будет  все  остальное  до  знака ']'. Неэффективность в том, что
$(grep  ...  )  заставит  сформировать  длинную  строку со всеми
вхождениями  шаблона,  в  то время как для положительного ответа
достаточно   факта   первого   совпадения   (grep  -q).  А  если
результирующая   строка   будет   более   128Кбайт,   то   будет
переполнение буфера командной строки у [.

короче
man grep
man bash
man test

-- 
Best regards,
 ASA                            mailto:llb@udm.ru



  reply	other threads:[~2003-05-28 17:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-24  7:34 [Comm] Кэш apt Konstantin Vinokurov
2003-05-24  8:16 ` [Comm] " ASA
2003-05-24 13:53   ` Konstantin Vinokurov
2003-05-24 18:14   ` [Comm] S: .rpm name normalizer (was: Кэш apt) Michael Shigorin
2003-05-25 16:03     ` Konstantin Vinokurov
2003-05-25 16:55       ` [Comm] Re[2]: " ASA
2003-05-27  4:47         ` Konstantin Vinokurov
2003-05-27 19:46           ` [Comm] Re[2]: " ASA
2003-05-28 17:12             ` Konstantin Vinokurov
2003-05-28 17:50               ` ASA [this message]
2003-05-26  2:24 ` [Comm] Re: [Comm] Кэш apt Evgeny Yugov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=958595626.20030528225009@udm.ru \
    --to=llb@udm.ru \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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