2015-04-22 61 views
0
grep '[branch "default"]' -A 3 config | grep -Po 'merge = \K\w+' 

這個grep命令會打印出「master」,這是我想要的,有沒有辦法用單個grep命令而不是兩個grep的?或任何其他解決方案?用grep打印圖案後的匹配詞

文件配置有:

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

不與'grep',可能帶有'sed',絕對帶有'awk'。 –

回答

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 
0

試試這個:

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