Eu tenho uma pasta de arquivos markdown - preciso renomear OS ARQUIVOS em lote. Preciso acrescentar uma data, e a data está dentro do arquivo neste formato:
----
Title: Title-of-blog-article
Date: 2012-03-07
Consegui encontrar uma maneira de pegar a data usando o awk. Não consigo encontrar a mágica certa para pegar essa data do awk e renomear o arquivo com ela. Esquema de nomenclatura pretendido:
OLD FILE
Title-of-blog-article.md
NEW FILE
2012-03-07-Title-of-blog-article.md
Existem mais de 150 arquivos nesta pasta. Eu tentei bash for loops e testei com mv e echo. Até agora no loop a variável awk nunca muda, apenas usa o campo do primeiro arquivo. Então eu definitivamente preciso de ajuda.
Responder1
Provavelmente não é muito eficiente, mas que tal
for f in *; do
d=$(awk '/^Date:/ {print $2; exit}' "$f")
[[ -n "$d" ]] && echo mv --no-clobber -- "$f" "${d}-${f}"
done
Remova o echo
quando estiver satisfeito com o fato de que ele está fazendo a coisa certa.