Mantén la atención porque en este artículo vas a hallar la solución que buscas.Esta reseña ha sido aprobado por nuestros especialistas para garantizar la calidad y veracidad de nuestro contenido.
Solución:
GNU grep también puede admitir la búsqueda anticipada y retrospectiva positiva y negativa: para su caso, el comando sería:
echo "Here is a string" | grep -o -P '(?<=Here).*(?=string)'
Si hay varias ocurrencias de Here
y string
puede elegir si desea hacer coincidir desde el principio Here
y última string
o emparejarlos individualmente. En términos de expresiones regulares, se denomina coincidencia codiciosa (primer caso) o coincidencia no codiciosa (segundo caso)
$ echo 'Here is a string, and Here is another string.' | grep -oP '(?<=Here).*(?=string)' # Greedy match
is a string, and Here is another
$ echo 'Here is a string, and Here is another string.' | grep -oP '(?<=Here).*?(?=string)' # Non-greedy match (Notice the '?' after '*' in .*)
is a
is another
sed -e 's/Here(.*)String/1/'
La respuesta aceptada no quita texto que podría estar antes Here
o después String
. Esta voluntad:
sed -e 's/.*Here(.*)String.*/1/'
La principal diferencia es la adición de .*
inmediatamente antes Here
y después String
.
Si aceptas, puedes dejar un enunciado acerca de qué le añadirías a este tutorial.