grep '[branch "default"]' -A 3 config | grep -Po 'merge = \K\w+'
这个grep命令打印“master”这就是我想要的,有没有办法用单个grep命令而不是两个grep来获取它?或任何其他解决方案?
文件配置有:
....
....
[branch "default"]
remote = origin
merge = master
....
....
答案 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 +'文件名