使用 grep 打印模式后的匹配词
print matching word after a pattern using grep
grep '[branch "default"]' -A 3 config | grep -Po 'merge = \K\w+'
这个 grep 命令打印 "master",这是我想要的,有没有办法用一个 grep 命令而不是两个 grep 命令来获得它?或任何其他解决方案?
文件配置有:
....
....
[branch "default"]
remote = origin
merge = master
....
....
使用 GNU grep:
grep -zoP '\[branch "default"\].*\n.*\n.*merge = \K\w+' filename
或使用 GNU sed:
sed -n '/\[branch "default"\]/{n;n;s/.*merge = \(\w\+\).*//p}' filename
输出:
master
试试这个:
grep -zoP '[branch "default"].\n.\n.*merge = \K\w+' filename
grep '[branch "default"]' -A 3 config | grep -Po 'merge = \K\w+'
这个 grep 命令打印 "master",这是我想要的,有没有办法用一个 grep 命令而不是两个 grep 命令来获得它?或任何其他解决方案?
文件配置有:
....
....
[branch "default"]
remote = origin
merge = master
....
....
使用 GNU grep:
grep -zoP '\[branch "default"\].*\n.*\n.*merge = \K\w+' filename
或使用 GNU sed:
sed -n '/\[branch "default"\]/{n;n;s/.*merge = \(\w\+\).*//p}' filename
输出:
master
试试这个:
grep -zoP '[branch "default"].\n.\n.*merge = \K\w+' filename