Eu quero descobrir a palavra que termina com ()… Use grep

0

Eu 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

    
por Mayur Sawant 05.03.2014 / 08:34

2 respostas

0
$ 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 peças 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 seguido por ()".

Isso ainda corresponderá a a parte bar() de bar()baz . Alguém poderia argumentar que os parênteses realmente terminam a palavra, o que torna bar() "uma palavra que termina em ()". Presumo que, de qualquer forma, isso não seja um problema em seu caso de uso real.

    
por 05.03.2014 / 08:56
0

Escape the () assim. se isso é no final da linha você deve usar regex (egrep)

egrep file_name_where_i_want_to_search ".*\(\)$"
    
por 05.03.2014 / 08:35