J'écris un script pour convertir mon journal git en format google calendar. Mais quand je vérifie le fichier calendar.txt, il n'a que la ligne d'en-tête initiale.Horodatage de git log avec bash regex
J'ai utilisé cette regex manuellement en sublime et cela a fonctionné parfaitement. Donc, il doit y avoir quelque chose qui ne va pas avec ma syntaxe bash.
#! /bin/bash
# add git log
git log --date=iso --pretty=format:"%ad%x09%s" > calendartmp.txt
# add header line to beginning of file
echo "Start Date,Start Time,Subject" > calendar.txt
#parse line by line into correct format
# "\d\d(\d\d)-(\d\d)-(\d\d) ([\d+\:]+) .*\t(.*)" -> "$2/$3/$1,$4,$5"
while read p; do
[[ $p =~ \d\d(\d\d)\-(\d\d)\-(\d\d)\ (\d\d\:\d\d\:\d\d).*\t(.*) ]] && echo "${BASH_REMATCH[2]}/${BASH_REMATCH[3]}/${BASH_REMATCH[1]},${BASH_REMATCH[4]},${BASH_REMATCH[5]}" >> calendar.txt
done < calendartmp.txt
#delete temp file
rm calendartmp.txt