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
next prev parent 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