Могу ли я использовать Clonezilla для резервного копирования и восстановления загрузочного USB-тома?

Формат для grep - это то, что мы называем "регулярным выражением POSIX" (посмотрите), и оно поддерживает некоторые простые примитивы сопоставления. Если вы знаете, что вам нужны только буквенно-цифровые символы, вы можете использовать класс символов, например, такой: [a-zA-Z0-9]. grep даже имеет ярлык для этого специфического класса (потому что он так полезен), например: [[:alnum:]]. man grep имеет гораздо больше информации об этом.

Вы также можете использовать подсчет повторений, чтобы указать, сколько таких символов вы хотите сопоставить. В вашем случае вы хотите, чтобы совпали: 1 буквенно-цифровой символ, затем точка, затем еще один символ, затем тире, за которым следует 7 символов. В регулярном выражении POSIX это выглядит так:

[[:alnum:]]\.[[:alnum:]]-[[:alnum:]]{7}

Примечания:

  1. Мне пришлось экранировать точку обратной косой чертой, иначе она будет разрешена как регулярное выражение "catch all characters".
  2. Для того чтобы повторение (фигурные скобки) работало, вам нужно включить "расширенный режим регулярных выражений", используя -e или запустив egrep вместо стандартного grep.

Таким образом, полная команда может выглядеть следующим образом:

egrep '[[:alnum:]]\.[[:alnum:]]-[[:alnum:]]{7}' /some/file

На выходе вы получите строки, в которых встретилось это выражение, возможно, выделенные цветом (в зависимости от вашего терминала). Если ваш пакетный файл не разделен на строки (возможно, он двоичный), ожидайте много беспорядка на экране.

2
05.06.2016, 12:35
0 ответов

Теги

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