Quero descobrir a palavra que termina com ()... Usando o comando grep no Linux.
grep file_name_where_i_want_to_search "*()"
alguma coisa assim... mas não está funcionando
Responder1
$ 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
significa "imprimir apenas as partes correspondentes", ou seja, não a linha inteira\w
significa "um caractere dentro de uma palavra"\+
significa "a entidade anterior uma ou mais vezes"
Portanto, grep -o '\w\+()'
significa “imprimir tudo o que consiste em um ou mais caracteres de palavra seguidos de ()”.
Isso ainda corresponderá, por exemplo, à bar()
parte de bar()baz
. Pode-se argumentar que os parênteses na verdade terminam a palavra, o que torna bar()
"uma palavra que termina em ()". Presumo que isso não seja um problema no seu caso de uso real.
Responder2
Fuja do () assim. se estiver no final da linha você deve usar regex (egrep)
egrep file_name_where_i_want_to_search ".*\(\)$"