sed/awk удаляет символы в определенных позициях после совпадения

sed/awk удаляет символы в определенных позициях после совпадения

Я ищу решение awk или sed, я не гений ни в том, ни в другом. Я прочитал все предложения, которые появились, когда я начал это печатать.

У меня есть файл со строками данных:

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

Имена и даты/время все разные, номера дней всегда находятся на одном и том же месте и всегда занимают одинаковое количество символов (2), часы/минуты/секунды всегда находятся на одной и той же позиции в строке, и это не в каждой строке, thisdateэто всегда будущая дата, и нет пустых строк.

Я пытаюсь удалить время из этих строк даты, пытаясь отключить ключ  thisdate=(это пробел перед thisdate), а затем удалить символы в позициях 18-26 (если я правильно посчитал)

Я пробовала пару вещей, но в основном искала что-то, что соответствовало бы моим потребностям и указывало бы мне правильное направление.

  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

Я уверен, что я что-то упускаю, но если кто-то может указать мне правильное направление, я буду благодарен!

решение1

Похоже, достаточно будет просто удалить 9 символов после 6-го символа  thisdate=:

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

Для данных это сгенерирует

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

Связанный контент