Quiero saber la palabra que termina con ()...Usa grep

Quiero saber la palabra que termina con ()...Usa grep

Quiero saber la palabra que termina con ()...Usando el comando grep en Linux.

grep nombre_archivo_dónde_quiero_buscar "*()"

algo asi...pero no funciona

Respuesta1

$ 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()
  • -osignifica "imprimir sólo partes coincidentes", es decir, no toda la línea
  • \wsignifica "un carácter dentro de una palabra"
  • \+significa "la entidad anterior una o más veces"

Entonces, grep -o '\w\+()'significa "imprimir todo lo que consta de uno o más caracteres de palabra seguidos de ()".

Esto seguirá coincidiendo, por ejemplo, con la bar()parte de bar()baz. Se podría argumentar que los paréntesis en realidad terminan la palabra, lo que forma bar()"una palabra que termina en ()". De todos modos, supongo que esto no es un problema en su caso de uso real.

Respuesta2

Escapa del () así. si esto está al final de la línea, debes usar expresiones regulares (egrep)

egrep file_name_where_i_want_to_search ".*\(\)$"

información relacionada