[Sysadmins] grep -x в bash

Oleg ulug1 на mail.ru
Пт Май 28 11:15:39 UTC 2010


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
>
>    
Спасибо.


Подробная информация о списке рассылки Sysadmins