Проверка, заканчивается ли конец каждой строки в файле буквой, сопровождаемой 8 числами цифр

У меня есть проблема с проверкой, если каждая строка моих файлов заканчивается буквой (A-Z (always capital))сопровождаемый числами exatcly 8 цифры (не имеет значения который). Таким образом, у меня есть много файлов, и содержание каждого файла похоже на это:

Nc1nc2cc3OCCOc3cc2s1 A10000001          
CCN(CC)C1CCN(Cc2cc(I)cc(I)c2O)CC1 B100000002
CCN(CC)C1CCN(Cc2cc(cc(I)c2O)C#CCO)CC1 C10000003

Всегда существует пространство между этой "строкой" и буквой wtih числа. Так, в этом примере B100000002 после буквы существует 9 цифр. Так как я сделанный большинство вещей вручную, которые я хотел бы проверить, существуют ли в моих файлах ошибки. Кто-либо может помочь мне с некоторой командой удара, таким образом, я вижу, какие строки имеют другой, неправильный шаблон?

Спасибо!

2
задан 14 May 2018 в 17:30

2 ответа

Можно использовать grep для получения строк, которые не следуют правилу:

grep -v ' [[:upper:]][0-9]\{8\}$' file*
  • расположите с интервалами соответствует себе
  • [[:upper:]] подобран любой прописной буквой
  • [0-9] соответствует цифре
  • \{8\} "квантор", это означает, что предыдущая конструкция должна быть повторена 8 раз
  • $ соответствия в конце строки
  • -v показывает строки, которые не подобраны
3
ответ дан 2 December 2019 в 02:43

Вы могли grep с жемчугом regexp:

grep -P ' [a-zA-Z]{1}[0-9]{8}$'

-P : для Регулярного выражения жемчуга

: regexp запускается с пространства, потому что Вы хотите пространство перед прописной буквой

[a-zA-Z]{1} : Точно 1 alphbaetic символьный нижний регистр или верхний регистр (можно удалить a-z для верхнего регистра только т.е. [A-Z] {1}),

[0-9]{8} : точно 8 числовых символов

$ : конец строки

Если Вы хотите отобразить строки, который не соответствует шаблону, просто добавляет -v опция к команде grep.

Если Вы хотите к числам строк дисплея, добавьте -n опция.

grep -Pvn ' [a-zA-Z]{1}[0-9]{8}$'
0
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

Похожие вопросы: