Я хочу найти слово, которое заканчивается на ()...Используйте grep

Я хочу найти слово, которое заканчивается на ()...Используйте grep

Я хочу найти слово, которое заканчивается на ()...Используя команду grep в Linux.

grep имя_файла_где_я_хочу_искать "*()"

что-то вроде этого... но это не работает

решение1

$ cat <<EOF > test
foo bar
foo bar() baz
foo.bar() baz
foo bar baz()
foobarbaz() foo bar()baz
EOF
$ grep -o '\w\+()' test
bar()
bar()
baz()
foobarbaz()
bar()
  • -oозначает «печатать только соответствующие части», т.е. не всю строку
  • \wозначает «символ в слове»
  • \+означает «предыдущая сущность один или несколько раз»

Итак, grep -o '\w\+()'означает «вывести все, что состоит из одного или нескольких символов слова, за которыми следует ()».

Это все равно будет соответствовать, например, bar()части bar()baz. Можно утверждать, что скобки на самом деле заканчивают слово, что делает bar()"слово, которое заканчивается на ()". Я предполагаю, что это не проблема в вашем реальном варианте использования в любом случае.

решение2

Экранируйте () следующим образом. Если это в конце строки, вам следует использовать регулярное выражение (egrep)

egrep file_name_where_i_want_to_search ".*\(\)$"

Связанный контент