Retirando Aspas com Awk

󰃭 03 Nov 2025 (updated: 03 Nov 2025 )

Estava querendo fazer um Script que listasse todas as postagens dos meus Blogs gerados pelo Hugo que estão no formato .md. Porém, eu estava com um problema: Eu detectei que tinha os seguintes padrões de títulos:

title: "Nippybox: Um Arch+Openbox bem opinativo"
title: '2025.160 - Cinna de Blusa'
title: '2025.147 - "Olhe as Minhas Orelhas" - Cinna'

E eu precisava tratar isso, retirando o title: dessas linhas, e tratar as aspas. Não sabia como fazer isso, então pedi para o Grok me dar uma resposta, ele ele me deu esse código aqui:

awk '
  sub(/^title:[[:space:]]*/, "") &&
  sub(/^['\''"]?/, "") &&
  sub(/['\''"]?[[:space:]]*$/, "")
  '

E como isso funciona? Segundo a explicação do Grok:

  • sub(/^title:[[:space:]]*/, ""): Remover o title e os espaços
  • sub(/^['\''"]?/, ""): Remove as Aspas de abertura, se houver
  • sub(/['\''"]?[[:space:]]*$/, ""): Remove as aspas de fechamentos e os espaços finais.

E o resultado é esse aqui:

Nippybox: Um Arch+Openbox bem opinativo
2025.160 - Cinna de Blusa
2025.147 - "Olhe as Minhas Orelhas" - Cinna

Depois vi que precisava uniformizar outra coisa: As datas, que estavam nesses formatos:

'2025-11-06'
2025-11-01T18:00:01

Novamente perguntei ao Grok, e ele me deu um comando para isso, que foi o:

awk '{gsub(/^'\''|'\''$/, ""); sub(/T.*/, ""); if ($0) print}' 

E isso funcionou muito bem para uniformizar as datas. Esse comendo basicamente retira as aspas, depois retira tudo o que houve depois do T, se houver, e por fim, verifica se é uma data válida.

O Awk é realmente muito útil e isso é algo a se estudar para melhorar os meus Scripts.