sed/awk elimina caracteres en posiciones específicas después del partido

sed/awk elimina caracteres en posiciones específicas después del partido

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 thisdateson 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

información relacionada