Как grep весь результат такой, что подзаготал может или не может содержаться в целевой структуре?

Я провел пару недель, сравнивая некоторые дистрибутивы linux, такие как

  • Mint с cinnamon desktop environ.
  • Ubuntu, новый debian 7.4
  • Fedora
  • CentOS
  • elivecd

И у меня установлен Elivecd, потому что полная поддержка аппаратного обеспечения mac, т.е. WiFi чипсета, и elive работает довольно бегло.

0
17.12.2018, 14:09
1 ответ

Использование расширенного регулярного выражения:

$ grep -E '[[:alnum:]_]+[[:digit:]]+(\[[^]]+\])?\.knownKeyWord' <file
anything1.knownKeyWord
anything2.knownKeyWord
anything3[1].knownKeyWord

Это позволит извлечь любую строку, содержащую строку в формате

XXXNNN[YYY].knownKeyWord

или

XXXNNN.knownKeyWord

где XXX— любая не-пустая буквенно-цифровая строка (, которая может также включать _), NNN— любая строка из (одной или нескольких )цифр, а YYY— ничего, кроме ].

Используйте grepс -x, если совпадения должны быть полными строками . Используйте -w, если совпадения должны быть полными слов (, то есть не как подстрока чего-то другого ).


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

$ sed -E 's/([[:alnum:]_]+)([[:digit:]]+)(\[[^]]+\])?(\.knownKeyWord)/<\1><\2><\3><\4>/' <file
<anything><1><><.knownKeyWord>
<anything><2><><.knownKeyWord>
<anything><3><[1]><.knownKeyWord>
0
28.01.2020, 04:07

Теги

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