[Sysadmins] grep -x в bash

Oleg ulug1 на mail.ru
Чт Май 27 12:51:08 UTC 2010


Доброго времени суток!


Есть скрипт, который проверяет аргументы командной строки, для того 
чтобы пропускать только те из них, которые соответствуют существующим 
правилам, как то: только буквы английского алфавита, цифры... :
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 есть в составе двух других цифр
Подскажите, пожалуйста, как это побороть.

-- 
С уважением,
Олег




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