git:需要解析提交消息以查找模式并将其存储在列表中

Jac*_*cko 3 git grep commit-message

我所有的git commit消息都以

  refs #SOME_NUMBER
Run Code Online (Sandbox Code Playgroud)

其中SOME_NUMBER是从1开始的数字。我想解析我的工作分支上的所有提交消息,将所有SOME_NUMBER存储在列表中,删除重复项,然后保存到文件中。不太确定从哪里开始。

mip*_*adi 6

您可以使用此shell一线式轻松完成此操作:

$ git log --format=%s | cut -f 2 -d ' ' | sed 's/#\(.*\)/\1/' | sort -n | uniq > refs.txt
Run Code Online (Sandbox Code Playgroud)

说明:

  1. git log --format=%s 显示每条提交消息的第一行
  2. cut -f 2 -d ' '用空格分隔线,并打印(#SOME_NUMBER部分)的第二部分
  3. sed 's/#\(.*\)/\1/' 从数字中删除数字符号
  4. sort 按数字升序对条目进行排序
  5. uniq 确保每个数字仅打印一次
  6. > refs.txt将输出打印到名为的文件中refs.txt