Grep для последовательных слов с заглавными буквами

Вы раньше использовали эту систему для запуска make для сборки драйверов? Возможно, вам понадобится несколько дополнительных пакетов.

Это руководство может быть несколько полезным, так как в нем описываются необходимые шаги перед компиляцией программного пакета, хотя наиболее важным шагом в вашем случае, вероятно, является первый:

sudo apt-get install build-essential checkinstall

После запуска попробуйте снова скомпилировать драйверы с помощью sudo make.

Если это не работает, возможно, у вас нет правильных заголовков ядра. Заголовки ядра — это просто файлы заголовков C для самого ядра, которые необходимы для компиляции вещей, взаимодействующих с ядром (, таких как драйверы ). Вот руководство по установке, в котором объясняется, что обновить/установить заголовки ядра так же просто, как запустить:

sudo apt update
sudo apt install linux-headers-$(uname -r)

0
19.10.2021, 19:36
1 ответ

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

$ cat file
x Yyy Zzz xx y
x Yyy Zzz Www
a Mmm: Yyy bbb
aaa aaa aaa
Ccc ccc CCC
Bbb Bbb Bbb Bbb
$ grep -P '[A-Z][^ ]*(?: +[A-Z][^ ]*)+' file
x Yyy Zzz xx y
x Yyy Zzz Www
a Mmm: Yyy bbb
Bbb Bbb Bbb Bbb

  • [A-Z][^ ]*соответствует словам с заглавной буквы, за которыми следует любой символ, не являющийся пробелом.
  • (?: +[A-Z][^ ]*)+соответствует одному или нескольким пробелам, за которыми следует указанный шаблон, повторяющийся один или несколько раз.

Как предложил @cas, есть альтернатива:

Использование -zбудет обнаруживать последовательные слова, написанные с заглавной буквы, даже через границы строк (, например.CCC\nBbb). и использование \sвместо пробела заставит его работать с вкладками и другими пробелами.

grep -z -P '[A-Z][^\s]*(?:\s+[A-Z][^\s]*)+' file
2
19.10.2021, 20:57

Теги

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