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 otitlee os espaçossub(/^['\''"]?/, ""): Remove as Aspas de abertura, se houversub(/['\''"]?[[: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.