[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