* [Sysadmins] grep -x в bash
@ 2010-05-27 12:51 Oleg
2010-05-27 13:05 ` Led
0 siblings, 1 reply; 3+ messages in thread
From: Oleg @ 2010-05-27 12:51 UTC (permalink / raw)
To: ALT Linux sysadmins' discussion
Доброго времени суток!
Есть скрипт, который проверяет аргументы командной строки, для того
чтобы пропускать только те из них, которые соответствуют существующим
правилам, как то: только буквы английского алфавита, цифры... :
for I in "$@"; do
if echo "$I" | LANG=C grep -qvx '[-_.a-z0-9][-_.a-zA-Z0-9@]*'
then ...
Делает это он замечательно )) Но теперь надо, чтобы он пропускал также 2
исключения - NAME1.BIN и NAME2.SFO
Пробую:
./test.sh 12 34 56
for x in "$@"; do
echo "$x" | grep -vx 12 -vx 34
grep: 34: No such file or directory
не работает,
echo "$x" | grep -ve 12 -ve 34
работает, но там-то нет точного соответствия, поэтому пропускается все,
в котором есть эти знаки,. например:
echo "$x" | grep -ve 1 -ve 3
выдаст только 56, потому что 1 и 3 есть в составе двух других цифр
Подскажите, пожалуйста, как это побороть.
--
С уважением,
Олег
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Sysadmins] grep -x в bash
2010-05-27 12:51 [Sysadmins] grep -x в bash Oleg
@ 2010-05-27 13:05 ` Led
2010-05-28 11:15 ` Oleg
0 siblings, 1 reply; 3+ messages in thread
From: Led @ 2010-05-27 13:05 UTC (permalink / raw)
To: ALT Linux sysadmins' discussion
On Thursday 27 May 2010 15:51:08 Oleg wrote:
> Доброго времени суток!
>
>
> Есть скрипт, который проверяет аргументы командной строки, для того
> чтобы пропускать только те из них, которые соответствуют существующим
> правилам, как то: только буквы английского алфавита, цифры... :
> for I in "$@"; do
> if echo "$I" | LANG=C grep -qvx '[-_.a-z0-9][-_.a-zA-Z0-9@]*'
> then ...
>
> Делает это он замечательно )) Но теперь надо, чтобы он пропускал также 2
> исключения - NAME1.BIN и NAME2.SFO
>
> Пробую:
> ./test.sh 12 34 56
> for x in "$@"; do
> echo "$x" | grep -vx 12 -vx 34
> grep: 34: No such file or directory
> не работает,
> echo "$x" | grep -ve 12 -ve 34
> работает, но там-то нет точного соответствия, поэтому пропускается все,
> в котором есть эти знаки,. например:
> echo "$x" | grep -ve 1 -ve 3
> выдаст только 56, потому что 1 и 3 есть в составе двух других цифр
> Подскажите, пожалуйста, как это побороть.
grep -vx -e 12 -e 34
--
Led
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Sysadmins] grep -x в bash
2010-05-27 13:05 ` Led
@ 2010-05-28 11:15 ` Oleg
0 siblings, 0 replies; 3+ messages in thread
From: Oleg @ 2010-05-28 11:15 UTC (permalink / raw)
To: ledest, ALT Linux sysadmins' discussion
On 05/27/2010 05:05 PM, Led wrote:
> On Thursday 27 May 2010 15:51:08 Oleg wrote:
>
>> Доброго времени суток!
>>
>>
>> Есть скрипт, который проверяет аргументы командной строки, для того
>> чтобы пропускать только те из них, которые соответствуют существующим
>> правилам, как то: только буквы английского алфавита, цифры... :
>> for I in "$@"; do
>> if echo "$I" | LANG=C grep -qvx '[-_.a-z0-9][-_.a-zA-Z0-9@]*'
>> then ...
>>
>> Делает это он замечательно )) Но теперь надо, чтобы он пропускал также 2
>> исключения - NAME1.BIN и NAME2.SFO
>>
>> Пробую:
>> ./test.sh 12 34 56
>> for x in "$@"; do
>> echo "$x" | grep -vx 12 -vx 34
>> grep: 34: No such file or directory
>> не работает,
>> echo "$x" | grep -ve 12 -ve 34
>> работает, но там-то нет точного соответствия, поэтому пропускается все,
>> в котором есть эти знаки,. например:
>> echo "$x" | grep -ve 1 -ve 3
>> выдаст только 56, потому что 1 и 3 есть в составе двух других цифр
>> Подскажите, пожалуйста, как это побороть.
>>
> grep -vx -e 12 -e 34
>
>
Спасибо.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-05-28 11:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-27 12:51 [Sysadmins] grep -x в bash Oleg
2010-05-27 13:05 ` Led
2010-05-28 11:15 ` Oleg
ALT Linux sysadmins discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/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 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
public-inbox-index sysadmins
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sysadmins
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git