function escape_chars {
sed -r 's/"/\\\\"/g;s/'/\\\\'/g' #将双引号、单引号这样的特殊字符添加转义符
}
function format {
subject=$(git log -n1 --pretty=format:%s $1 | escape_chars) #只对subject部分做处理
author=$(git log -n1 --pretty=format:%aN $1)
commit=$(git log -n1 --pretty=format:%h $1)
date=$(git log -n1 --pretty=format:%aD $1)
email=$(git log -n1 --pretty=format:%aE $1)
echo "{\\"commit\\":\\"$commit\\",\\"subject\\":\\"$subject\\",\\"author\\":\\"$author\\",\\"email\\":\\"$email\\",\\"date\\":\\"$date\\"}," >> git.json
}
rm -rf git.json
for hash in $(git rev-list ${compareBranch} ^master)
do
format $hash
done
sed -i '$s/.$//;1i\\[' git.json #分号前去除文件里最后一个字符;分号后在文件头添加[
head -c-1 git.json >new.json
mv new.json git.json
echo "]" >>git.json #在文件末尾添加],和上面的[联合起来形成标准的json文件
cat git.json
网友评论