使用grep在模式后打印匹配单词

时间:2015-04-22 17:10:30

标签: linux grep

grep '[branch "default"]' -A 3 config | grep -Po 'merge = \K\w+'

这个grep命令打印“master”这就是我想要的,有没有办法用单个grep命令而不是两个grep来获取它?或任何其他解决方案?

文件配置有:

....
....
[branch "default"]
         remote = origin
         merge = master
....
....

2 个答案:

答案 0 :(得分:1)

使用GNU grep:

grep -zoP '\[branch "default"\].*\n.*\n.*merge = \K\w+' filename

或使用GNU sed:

sed -n '/\[branch "default"\]/{n;n;s/.*merge = \(\w\+\).*/\1/p}' filename

输出:

master

答案 1 :(得分:0)

试试这个:

  

grep -zoP' [分支"默认"]。 \ n。 \ n。* merge = \ K \ w +'文件名