Al momento de trabajar con texto, puede ser necesario recortar la salida de este texto, por ejemplo,
echo 12.3456789
es necesario que muestre solo 3 decimales:
echo 12.3456789 | sed -r 's/([0-9]+\.[0-9][0-9][0-9])[0-9]+/\1/g'
12.345
La magia está en el uso de paréntesis en la sección de formato y en la sección de reemplazo el \1, esto significa:
- los parentesis redondos, marcan una sección que se recordara.
- el \1 indica que se usará el primero bloque marcado en el formato.
Explicando la expresión regular va a recordar cuando venga 1 o más números entre 0 y 9, seguido por el caracter de punto, seguido de 3 números, cada uno entre 0 y 9. Este es el bloque a recordar. Además, la expresión contempla que debe venir seguido de un numero de 1 o más cifras entre 0 y 9, pero esto no se recuerda pues no está entre paréntesis.
El -r en el sed es para que indicarle que use expresiones regulares extendidas, pues el uso de estos parámetros no son parte del conjunto estandard de opciones.
No hay comentarios.:
Publicar un comentario