He estado investigando mucho sobre esto, pero todavía no lo tengo claro. ¿Qué significa límite de palabra ? ¿Qué hace?
Entonces, por ejemplo, ¿alguien podría explicarme este comando por favor?
egrep '\b[A-Z]+\b' filename.sh
grep
regular-expression
usuario36683
fuente
fuente

[azA-Z0-9_]. Consulte el manualegrep(1), quizás la doumentation para las expresiones regulares en uso.Respuestas:
Como se describe aquí , por ejemplo, coincide entre palabras:
Aquí hay ejemplos de cada uno de esos casos:
Para la cadena
foobar, el primer caso coincidePara la cadena
foobar, el segundo caso coincidePara la cadena
foo bar, el tercer caso coincidiráLo que califica como un carácter de palabra depende de la implementación específica de la expresión regular. Sin embargo, en todos los casos, las letras (
[a-z]y[A-Z]), los números ([0-9]) y_se consideran caracteres de palabras.Entonces, la expresión regular de ejemplo que publicó (
\b[A-Z]+\b) significa encontrar la cadena más larga que se encuentra entre los límites de dos palabras y que consiste solo en letras mayúsculas. Puede ser más fácil de explicar con un ejemplo:fuente
egrep(ni/usr/xpg4/bin/egrep) no trata de\besta manera. Por ejemplo,echo "FOOBAR" | egrep '\b[A-Z]+\b'no coincidiría.Vamos a dividirlo:
[A-Z]representa cualquier carácter en la clase de caracteres[ABCDEFGHIJKLMNOPQRSTUVWXYZ].[A-Z]+representa una o más ocurrencias de mayúsculas. Ejemplo partidos serían:A,HELLO,IS,I,ELEPHANT, etc.'\bINDIA\b': es exactamente como una PALABRA ENTERA para buscar la palabraINDIAen mayúscula. Sería NO coincidirINDIANA. Aplicando así el mismo principio:'\b[A-Z]+\b'buscaría palabras enteras que tengan una o más letras en mayúscula.egrep '\b[A-Z]+\b' filename.shlo tanto , buscaría palabras que tengan una o más letras todas en mayúscula en el archivo -filename.sh.\b- Es exactamente como una búsqueda de palabras completas.fuente