текст, выделенный текст Я использую классы egrep и character, как показано ниже. Класс символов [aã]
не работает, если я не использую (a|ã)
. Что я делаю не так?Класс символов в egrep, вызванный с Perl, не распознается
my @rows = `egrep --no-group-separator -r -i -I -H -A1 "^name#.*?jo[aã]o.*?#.*?#.*?#.*?#.*?\$" .`;
Файлы, находящиеся на поиске, находятся в формате UTF-8. Это проблема?
Это линия, которую я пытаюсь сопоставить. Я использую специальные символы с диакритикой. Файл был преобразован из CP1252 в UTF-8 с помощью команды iconv в linux.
имя # João Álvares Батиста # 1751 # Хосе Альварес Виейра # Джоана Родригес Барбоза # Мария да Консейсау # летучая # 101 # HTTP ##
Это мой исходный код:. мои @rows = egrep --include="image_args_search_*.txt" --no-group-separator -r -i -I -H -A1 "$operator" .
;
где $ operator: ^имя #. ? J [OÔТÓÕÖoòóôõö] [AÁÁÂÃÄààââää] [OÔÒÓÕÖoòóôõö].? #. ? #.? #. ? #.? \ $
Я думаю, проблема в том, что символы с акцентами в команде egrep не соответствуют строкам в файлах формата UTF-8. Как это исправить?
Спасибо,
Marc
Вы могли бы внести пустые комментарии к вашему вопросу? На самом деле не имеет смысла использовать 'egrep' в скрипте Perl ... – stevieb