sed/awk remove caracteres em posições específicas após a partida

sed/awk remove caracteres em posições específicas após a partida

Estou procurando uma solução awk ou sed, mas também não sou um gênio. Li todas as sugestões que surgiram quando comecei a digitar isso.

Eu tenho um arquivo com linhas de dados:

name
 thisdate=Sep  2 23:59:59 2022 GMT
name
 thisdate=Sep 15 23:59:59 2022 GMT

Os nomes e datas/horas são todos diferentes, os números dos dias estão sempre no mesmo lugar e ocupam sempre o mesmo número de caracteres (2), as horas/min/seg estão sempre na mesma posição na linha e a sua nem todas as linhas thisdatesão sempre uma data no futuro e não há linhas em branco.

Estou tentando remover a hora dessas linhas de data tentando desligar  thisdate=(é um espaço na frente de thisdate) e, em seguida, excluindo caracteres nas posições 18 a 26 (se contei corretamente)

Eu tentei algumas coisas, mas tenho procurado principalmente por algo que atenda às minhas necessidades para me indicar a direção certa

  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

Tenho certeza de que estou faltando alguma coisa, mas se alguém pudesse me indicar a direção certa, ficaria grato!

Responder1

Parece que deveria ser suficiente excluir apenas 9 caracteres após o 6º caractere após  thisdate=:

sed 's/^\( thisdate=.\{6\}\).\{9\}/\1/' file

Para os dados fornecidos, isso geraria

name
 thisdate=Sep  2 2022 GMT
name
 thisdate=Sep 15 2022 GMT

informação relacionada