美文网首页
JSON保存git log历史记录里subject带有特殊字符的

JSON保存git log历史记录里subject带有特殊字符的

作者: shyingsheng | 来源:发表于2021-10-19 15:07 被阅读0次

    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

    相关文章

      网友评论

          本文标题:JSON保存git log历史记录里subject带有特殊字符的

          本文链接:https://www.haomeiwen.com/subject/eqsaoltx.html