[Sysadmins] grep -x в bash

Led ledest на gmail.com
Чт Май 27 13:05:12 UTC 2010


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


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