grep не работает при использовании опций --ignore-case и --only-match. Пример:
$ echo "abc" | grep -io abc
abc
$ echo "ABC" | grep -io abc
$
Но
$ echo "abc" | grep -i abc
abc
$ echo "ABC" | grep -i abc
ABC
Согласно man-странице:
-o, --only-matching Показать только ту часть строки, которая соответствует ПАТТЕРНУ. -i, --ignore-case Игнорировать различия регистра как в PATTERN, так и во входных файлах.
Это ошибка grep или я не получил страницу карты?
Я использую Mac OS X 10.6.8 и
$ grep --version
grep (GNU grep) 2.5.1
Нашел эту ссылку: http://lists.gnu.org/archive/html/bug-gnu-utils/2003-11/msg00040.html
Конечно, можно использовать обходной путь типа grep -o [aA][bB][cC]
, но это не кажется хорошим вариантом.