Нет ответа. Тогда я нажал на Uninstall в TeamViewer 10. И появилось следующее:
Как указано, этот пункт меню не связан ни с каким пакетом. Итак, после подтверждения, что я хочу удалить его из меню в любом случае, пункт меню исчез. Проблема решена.
Самый простой способ - разрешить tr
удалить их:
$ grep -oE "\[[0-9].+\]" logfile | tr -d '[]'
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
Обратите внимание, что tr
Утилита не знает о регулярных выражениях или шаблонах точно так же, как оболочка. В этом случае операнд []
- это всего лишь два символа [
и ]
.
Вместо использования grep с расширенным регулярным выражением ( -E
) используйте grep для perl-regex ( -P
) с просмотром назад и вперед.
$ grep -oP "(?<=\[)[0-9].+(?=\])" logfile
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
Здесь (? <= \ [)
указывает, что должен быть предшествующий \ [
], а (? = \])
указывает, что там должен быть следующим за \]
, но не включать их в вывод соответствия.
$ cat a.txt
test hello..[113a6d9e-7b06-42c6-a52b-7a4e4d2e216c]... this is
te [113a6d9e-7b06-42c6-a52b-7a4e4d2e216c]. this is hello
$ grep -oP '(?<=\[)[^\]]*' a.txt
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
113a6d9e-7b06-42c6-a52b-7a4e4d2e216c
Один из способов - подключение к разрезу
:
grep -oE "\[[0-9].+\]" logfile | cut -d'[' -f2 | cut -d']' -f1
sed более применим для данного случая, чем grep
sed '/\n/{P;D;};s/\[/\n/;s/\]/\n/;D' log