Формат для grep
- это то, что мы называем "регулярным выражением POSIX" (посмотрите), и оно поддерживает некоторые простые примитивы сопоставления. Если вы знаете, что вам нужны только буквенно-цифровые символы, вы можете использовать класс символов, например, такой: [a-zA-Z0-9]
. grep
даже имеет ярлык для этого специфического класса (потому что он так полезен), например: [[:alnum:]]
. man grep
имеет гораздо больше информации об этом.
Вы также можете использовать подсчет повторений, чтобы указать, сколько таких символов вы хотите сопоставить. В вашем случае вы хотите, чтобы совпали: 1 буквенно-цифровой символ, затем точка, затем еще один символ, затем тире, за которым следует 7 символов. В регулярном выражении POSIX это выглядит так:
[[:alnum:]]\.[[:alnum:]]-[[:alnum:]]{7}
Примечания:
-e
или запустив egrep
вместо стандартного grep
. Таким образом, полная команда может выглядеть следующим образом:
egrep '[[:alnum:]]\.[[:alnum:]]-[[:alnum:]]{7}' /some/file
На выходе вы получите строки, в которых встретилось это выражение, возможно, выделенные цветом (в зависимости от вашего терминала). Если ваш пакетный файл не разделен на строки (возможно, он двоичный), ожидайте много беспорядка на экране.