使用SED从GIT日志中过滤输出



我做了一些SVN来迁移。现在,我使用git日志查找SVN修订版(在GIT的提交消息中描述(。

$ git log -1 11.10.11.0

输出

commit 84a1f5fb6xxx4607e6ed5623eab15ecdbacf
Author: USER <USER>
Date:   Wed Apr 12 08:27:08 2017 +0000
    git-svn-id: https://svn-repo.com/repo/proj/tags/11.10.11.0@12000 f25b8xx2b0-ax00-41x2-87xx1-abxxxxe8fa

现在,我想使用SED来过滤修订号(12000(。这样做的最通用方法是什么?

sed方法:此处sed SED执行了两个动作。一种是仅打印所需的线,另一个是打印所需的线路部分。

<git-command>|sed -r '/git-svn-id/!d;s/.*@([^ ]+).*/1/'
12000

如果grep是您的可接受方法:

<git-command>|grep -oP 'git-svn-id.*?@K[^ ]+'
12000

如果awk是可以接受的:

<git-command>|awk '/git-svn-id/{n=split($2,a,"@");print a[n]}'
12000

awk命令可以满足您的要求,请查看以下内容,

git log -1 11.10.11.0 | awk -F'@' '{printf "%s",$2}' | awk '{print $1}'
12000

最新更新