ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [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