Найдите udev теггер разъема в Системе, соедините клиент (dbus-монитор), который контролирует шину с помощью DBus для сообщений на подключении разъема и разъединениях.
На самом деле с -o
переключатель, GNU grep
возвраты только, чему это соответствовало. Как насчет:
grep -oP "\w*[A-Z]+\w*" yourfile.txt
Обратите внимание, что этот regex распознает слова с прописными буквами где угодно в них, не обязательно начале. Необходимо настроить его для удовлетворения потребностей, если они отличаются.
Как указано ниже, это не могло бы быть самым портативным из решений. Портативная альтернатива в Perl
perl -nE 'say $1 while /(\w*[A-Z]+\w*)/g' yourfile.txt
Вы могли использовать sed
только возвратить строку а не целую строку
sed 's/.*\([A-Z]*\).*/\1/g' <file>
или
sed 's/[a-z]*\| //g' <file>
POSIX Основной стандарт Регулярного выражения (используемый по умолчанию в grep
, vim
, less
, sed
, и т.д.) использование \<
и \>
показать границы слова. Это позволяет букве следовать за пробелом, а также неалфавитно-цифровыми символами как кавычки, тире, знаки "равно", и т.д. Используйте -o
опция распечатать каждое соответствие на новой строке, и вуаля:
grep -o '\<[A-Z][a-z]*\>' yourfile.txt
Снова, Вы, возможно, должны были бы иметь, изменяют regexp для удовлетворения потребностям. Возможно, путем разрешения чисел или второй прописной буквы..? Это делает обоих..
grep -o '\<[A-Z][a-z0-9]*[A-Z][a-z0-9]*\>' yourfile.txt
\<
не находится в спецификации POSIX BREs. Ссылка, которую Вы предоставляете, не к той спецификации, но к некоторой странице справочника некоторой версии GNU grep.
– Stéphane Chazelas
07.02.2014, 18:26
grep
. Используяsed
единственный портативный способ, которым я знаю, как сделать это. – rahmu 08.11.2012, 00:59perl -e 'print "$_\n" for map {m/(\w*[A-Z]+\w*)/g} <>'
yourfile.txt – Joseph R. 08.11.2012, 01:20