查看变更记录时,希望按日期分好组,以便跟踪功能变化
git log --date=short --pretty=format:"%cd|%h %s" --since="7 days ago" | sort | awk -F'|' '{a[$1]=a[$1] $2 "\n"} END {for (k in a) print "\n提交日期:"k"\n" a[k]}'
- 依赖git log,获取日志信息。通过--since,设定查询范围,避免日志过多。日期格式采用短型,固定长度并且方便后续排序。输出格式化时,添加分隔符,以便后续操作。
- 使用awk进行文本处理 https://www.runoob.com/linux/linux-comm-awk.html
awk 'BEGIN { ... } pattern1 { action1 } pattern2 { action2 } END { ... }'- 通过-F设定分割符号(避免使用git提交记录中会使用的字符,造成分割错误)。
- 然后把分割信息放到关联数组中,用日期作为键,采用换行拼接
- 使用for,遍历日期,格式化输出(我这里就是加了个日期标头)
- 如果要控制顺序的话,可以先对关联数组排序。for遍历关联数组的时候,使用的是键排序,可以使用sort或者asorti进行干预,控制输出顺序。
浙公网安备 33010602011771号