У меня есть папка файлов скидки с цены - я должен обработать в пакетном режиме, переименовывают ФАЙЛЫ. Я должен предварительно ожидать дату, и дата в файле в этом формате:
----
Title: Title-of-blog-article
Date: 2012-03-07
Мне удалось найти способ захватить дату с помощью awk. Я, может казаться, не нахожу правильное волшебство затем взять ту дату от awk и переименовать файл с ним. Намеченная схема именования:
OLD FILE
Title-of-blog-article.md
NEW FILE
2012-03-07-Title-of-blog-article.md
Существуют 150 + файлы в этой папке. Я попробовал удар за циклы и протестировал его с mv и эхом. До сих пор в цикле awk переменная никогда не изменяет, просто использует поле из самого первого файла. Таким образом, я определенно нуждаюсь в помощи.
Вероятно, не очень эффективный, но как насчет
for f in *; do
d=$(awk '/^Date:/ {print $2; exit}' "$f")
[[ -n "$d" ]] && echo mv --no-clobber -- "$f" "${d}-${f}"
done
Удалите echo
после того как Вы удовлетворены, что это делает правильную вещь.