2011-07-27 9 views

Respuesta

0

Lo siguiente coincidirá con la sustitución solo en cadenas de cuatro dígitos, seguidas por cadenas de dos dígitos.

$ echo '201107' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)/\1-\2/' 
2011-07 

Sed expresión regular es un poco incómodo, debido a la falta de \d, y la necesidad de escapar paréntesis y llaves (pero no corchetes). Mi solución debe ser 's/(\d{4})(\d{2})/\1-\2/' si no es por estas peculiaridades.

18
echo "201107" | sed 's/201107/2011-07/' 

Debería funcionar. Pero es broma, aquí está la solución más general:

echo "201107" | sed 's/^\(.\{4\}\)/\1-/' 

Esto insertará un - después de los primeros cuatro caracteres.

HTH

0

Sé que esto es diggin hasta un dinosaurio enorme, pero si desea eliminar los ceros del tizón 6

echo '20110715000000' | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{6\}\)/\1-\2-\3/' 
Cuestiones relacionadas