Sprawdź metadane:

$ sed -ne '/^---/,/^---/p' bnf.md
---
title: BNF
author: John Doe
date: 2005-03-12 01:26:19
tags: [bnf, rfc]
---

Zmień wszystkie pliki w katalogu:

$ for i in *.md; do 
    d="$(awk '/^date: [0-9]+/ { print $2,$3 }' $i)"; 
    touch -c -d "$d" $i; 
done

More information

Operacja na tym dokumencie zwróci dwie daty:

$ awk '/^date: [0-9]+/ { print $2,$3 }' touch-zmiana-czasu-modyfikacji.md
2007-12-10 23:29:54
2005-03-12 01:26:19

Rozwiązaniem jest ograniczenie czytania pliku do kilku pierwszych linii:

$ awk 'FNR<6 && /^date: [0-9]+/ { print $2,$3 }' touch-zmiana-czasu-modyfikacji.md
2007-12-10 23:29:54
$ head -n5 touch-zmiana-czasu-modyfikacji.md | awk '/^date: [0-9]+/ { print $2,$3 }'
2007-12-10 23:29:54

Refs