Estoy buscando una solución awk o sed, tampoco soy un genio con ninguna de ellas. He leído todas las sugerencias que surgieron cuando comencé a escribir esto.
Tengo un archivo con líneas de datos:
name
thisdate=Sep 2 23:59:59 2022 GMT
name
thisdate=Sep 15 23:59:59 2022 GMT
Los nombres y las fechas/horas son todos diferentes, los números de los días siempre están en el mismo lugar y siempre ocupan el mismo número de caracteres (2), las horas/min/segundos están siempre en la misma posición en la línea y su no todas las líneas thisdate
son siempre una fecha en el futuro y no hay líneas en blanco.
Estoy tratando de eliminar la hora de esas líneas de fecha intentando desactivar thisdate=
(es un espacio delante de thisdate
) y luego eliminando caracteres en las posiciones 18-26 (si conté bien)
He probado un par de cosas, pero principalmente he estado buscando algo que se ajuste a mis necesidades y que me oriente en la dirección correcta.
952 sed 's/^\(.\{18\}\)\(.\{26\}\)/\1/' file <--this may not have worked as I didn't key on a match?
958 sed -i 's/thisdate=(.{11})18/\26/' file
959 sed -i 's/thisdate=(.{10})17/\25/' file
Estoy seguro de que me estoy perdiendo algo, pero si alguien pudiera indicarme la dirección correcta, ¡se lo agradecería!
Respuesta1
Parece que debería ser suficiente con simplemente eliminar 9 caracteres después del sexto carácter después de thisdate=
:
sed 's/^\( thisdate=.\{6\}\).\{9\}/\1/' file
Para los datos dados, esto generaría
name
thisdate=Sep 2 2022 GMT
name
thisdate=Sep 15 2022 GMT