Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用awk或grep从git日志中提取数据?_Git_Bash_Shell_Awk_Grep - Fatal编程技术网

如何使用awk或grep从git日志中提取数据?

如何使用awk或grep从git日志中提取数据?,git,bash,shell,awk,grep,Git,Bash,Shell,Awk,Grep,我必须提取提交消息以及从git日志中更改的相应文件。 基本上,我在提交消息中给出了BUC ID。所以,对于某些文件集,我想获得BUC ID 我的命令的输出:git log--dirstat commit bcc9d8be62b6ac9b8dc02c0bf56d0f433df59466 Author: Date: Tue Sep 5 12:08:04 2017 +0530 BUC:BUC3565-EPIC14 | Review Page Manage permission

我必须提取提交消息以及从git日志中更改的相应文件。 基本上,我在提交消息中给出了BUC ID。所以,对于某些文件集,我想获得BUC ID

我的命令的输出:
git log--dirstat

  commit bcc9d8be62b6ac9b8dc02c0bf56d0f433df59466
  Author: 
  Date:   Tue Sep 5 12:08:04 2017 +0530

  BUC:BUC3565-EPIC14 | Review Page Manage permission and junit

 Change-Id: Ice73d25f77d9f6c4afe647e35bdf9ec280dd7dcf

 31.3% manager/src/main/java/com/ericsson/cm/manager/web/listner/
 68.6% manager/src/test/java/com/ericsson/cm/manager/web/listners/

 commit ab70d068b2bcea4060028a3457551cd1cc35a1f1
 Author: 
 Date:   Tue Sep 5 11:30:29 2017 +0530

 BUC:BUC12345 MADE some changes

Change-Id: I7e6733afaf8064c1279e5b217c8d4fba469fd061

  59.0% webui/servermanagement/src/servermanagement/regions/left/
  40.9% webui/servermanagement/src/servermanagement/regions/main/
现在,我只想获取
BUC ID
,以便在
webui/
中进行更改
我怎样才能做到这一点

$ awk -F'[: ]' '/BUC/{buc=$3;next}/webui/{print buc;exit}' logfile
BUC12345

# OR
$ awk  '/BUC/{$1=$1;gsub(/BUC:| .*/,"");buc=$0}/webui/{print buc;exit}' logfile
BUC12345
输入:

$ cat logfile
 commit bcc9d8be62b6ac9b8dc02c0bf56d0f433df59466
  Author: 
  Date:   Tue Sep 5 12:08:04 2017 +0530

  BUC:BUC3565-EPIC14 | Review Page Manage permission and junit

 Change-Id: Ice73d25f77d9f6c4afe647e35bdf9ec280dd7dcf

 31.3% manager/src/main/java/com/ericsson/cm/manager/web/listner/
 68.6% manager/src/test/java/com/ericsson/cm/manager/web/listners/

 commit ab70d068b2bcea4060028a3457551cd1cc35a1f1
 Author: 
 Date:   Tue Sep 5 11:30:29 2017 +0530

 BUC:BUC12345 MADE some changes

Change-Id: I7e6733afaf8064c1279e5b217c8d4fba469fd061

  59.0% webui/servermanagement/src/servermanagement/regions/left/
  40.9% webui/servermanagement/src/servermanagement/regions/main/

该命令将从输出中删除空行,按
webui
过滤,并在
webui
匹配之前打印
2


git-log--dirstat | grep-ve'^$'| grep webui-b2

git-log--pretty=%s--webui/| awk'{print$1}
@ElpieKay谢谢这是我们想要的。非常感谢@DevDio。这正是我想要的。谢谢@Akshay Hegde的回复,但我发现另外两个提供的解决方案更容易使用。