Использование grep для фильтрации итальянских фискальных кодов - PullRequest
1 голос
/ 13 марта 2019

Я сейчас использую это регулярное выражение

/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i

но по некоторым причинам grep не дает мне никаких результатов.

Вот что я выполняю:

grep -E -o "/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i" filename.txt

Информация о том, как генерируется итальянский фискальный код: https://en.wikipedia.org/wiki/Italian_fiscal_code_card

Пример данных:

fjksdhfdskjhfsdkjfhsjkfhsdMLLSNT82P65Z404Ukjfdshkjfsdhkjfdshfjdshmnbmnb
CF= "mrtmtt25d09f205z" (Region).

Ожидаемый результат:

MLLSNT82P65Z404U    
mrtmtt25d09f205z

1 Ответ

1 голос
/ 13 марта 2019

Использование grep:

$ grep -io "[A-Z]\{6\}[0-9]\{2\}[A-Z][0-9]\{2\}[A-Z][0-9]\{3\}[A-Z]" file
MLLSNT82P65Z404U
mrtmtt25d09f205z

или

$ grep -Eio "[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]" file

или

$ grep -Pio "[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]" file

man grep:

-i, --ignore-case
       Ignore case distinctions in  both  the  PATTERN  and  the  input
       files.
-o, --only-matching
       Print  only  the  matched  (non-empty) parts of a matching line,
       with each such part on a separate output line.
-E, --extended-regexp
       Interpret PATTERN as an extended regular  expression 
-P, --perl-regexp
       Interpret the pattern as a  Perl-compatible  regular  expression
       (PCRE).   This  is  highly  experimental and grep -P may warn of
       unimplemented features.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...