找到第一次出现的匹配正则表达式后,找到另一个正则表达式

时间:2016-11-18 21:20:54

标签: regex bash awk grep

我的文件看起来像这样

#Default GitHub
Host github.com
  #Username username2
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_username2

Host github-username1
  #Username username1
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_username1

我想在github.com之后找到第一个用户名,因此在这种情况下会返回username2

2 个答案:

答案 0 :(得分:0)

主机github.com 之后获取第一个用户名

$ awk '/Host github.com/ {f=1; next} f==1&& /Username/ {f=0; print $2}' file
username2

答案 1 :(得分:0)

awk 'f&&/Username/{print $2; exit} /github\.com/{f=1}' file