Quiero grep todas las líneas que contienen palabras que comienzan con "H" y terminan con "d". ¿Como podría hacerlo? Encontré que grep ^ H me dará la H para cada línea.
0
Quiero grep todas las líneas que contienen palabras que comienzan con "H" y terminan con "d". ¿Como podría hacerlo? Encontré que grep ^ H me dará la H para cada línea.
Respuestas:
Lo intentaré:
/^H.*d$/
. El ^ es el comienzo con y $ termina con. El. * Coincide con cualquier cosa.fuente
¿Cómo definirías "palabras"?
Si están delimitados por espacios:
Deberías hacerlo.
\<
y\>
coincide con el principio y el final de una palabra, respectivamente.[^ ]*
coincide con una secuencia de cero o más caracteres no espaciales.Más, generalmente, si su grep lo admite (GNU grep lo hace):
encuentra palabras delimitadas por caracteres de "espacio": tabulación, nueva línea, tabulación vertical, avance de página, retorno de carro y espacio.
Supongo que "líneas que contienen palabras" significa que desea que "foo H123d bar" coincida. Si cada línea contiene una palabra completa, reemplaza
\<
por^
y\>
por$
.EDITAR : Esto podría no ser 100% correcto.
\<
y\>
define una "palabra" como una secuencia no vacía de letras, dígitos y guiones bajos. Defina exactamente lo que quiere decir con "palabra", e intentaré refinar mi respuesta. En"*H*d*"
esH*d
una palabra"?fuente