0 votos

Terminal: uso del comando grep con el carácter '[' como objetivo, no como función

Estoy usando el grep En un simple script, el problema sin embargo es que la cadena que busca el comando grep incluye un carácter de corchetes: [ .

Después de algunas investigaciones, he encontrado que el corchete [ se utiliza de hecho como una función para optimizar la salida de los comandos grep a través de un proceso llamado " pipelining " (Aunque no me cites porque no estoy seguro).

Mi pregunta:

¿Cómo puedo buscar una cadena con un carácter '[' en ella sin invocar una función de canalización dentro de grep?

Elaboración:

El script está buscando en un registro del sistema la cadena su[ . Este es mi actual comando que funciona mal: tail -1 system.log | grep " su[" Sin embargo, no funcionará debido al corchete al final, devolviendo el error: grep: brackets ([ ]) not balanced .

Gracias por adelantado.

2voto

hjdm Puntos 18

Los paréntesis deben escaparse con \ porque es un personaje especial. Su comando se verá como:

tail -1 system.log | grep " su\["

Caracteres especiales

De este sitio Puedes aprender sobre los caracteres especiales en bash.

¿Qué hace que un personaje sea especial? Si tiene un significado que va más allá de su significado literal, un metasignificado, entonces lo denominamos carácter especial. Junto con los comandos y las palabras clave, los caracteres especiales son los bloques de construcción de los scripts scripts.

\ es un carácter especial y puede ser utilizado como:

[ ] prueba.

Expresión de prueba entre [ ]. Tenga en cuenta que [ es parte del shell builtin test (y un sinónimo del mismo), no un enlace al comando externo /usr/bin/test.

[[ ]] prueba.

Expresión de prueba entre [[ ]]. Más flexible que la prueba con un solo corchete [ ], esta es una palabra clave del shell.

[ ] elemento de la matriz.

En el contexto de un array, los corchetes delimitan la numeración de cada elemento de ese array. Array[1]=slot_1

echo ${Array[1]}

[ ] gama de caracteres.

Como parte de una expresión regular, los corchetes delinean un rango de caracteres a comparar.

$[ ... ] expansión de números enteros.

Evaluar la expresión entera entre $[ ].

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X