我需要 bash 中的一种方法(最便携的)来执行文件搜索~/.netrc,针对特定的内容machine api.mydomain.com,然后在下一行中提取用户名值。
格式为:
machine a.mydomain.com
username foo
passsword bar
machine api.mydomain.com
username boo
password far
machine b.mydomain.com
username doo
password car
Run Code Online (Sandbox Code Playgroud)
因此,它应该与此示例api.mydomain.com完全匹配并返回。boo
awk '/api.mydomain.com/{getline; print}' ~/.netrc
Run Code Online (Sandbox Code Playgroud)
获取我想要的行,但如何找到用户名值?
$ awk '/api.mydomain.com/{getline; print $2}' ~/.netrc
boo
Run Code Online (Sandbox Code Playgroud)
要将其捕获到变量中:
$ name=$(awk '/api.mydomain.com/{getline; print $2}' ~/.netrc)
$ echo "$name"
boo
Run Code Online (Sandbox Code Playgroud)
默认情况下,awk根据空格将记录(行)拆分为字段。因此,在 行上username boo,username被分配给字段 1,表示为$1,并被boo分配给字段 2,表示为$2。
| 归档时间: |
|
| 查看次数: |
3310 次 |
| 最近记录: |