0

git ログを Google カレンダー形式に変換するスクリプトを作成しています。しかし、calendar.txt ファイルを確認すると、最初のヘッダー行しかありません。

この正規表現を崇高に手動で使用したところ、完全に機能しました。したがって、私の 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
4

1 に答える 1