首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将awk输出分割成多条管道

如何将awk输出分割成多条管道
EN

Ask Ubuntu用户
提问于 2018-10-05 06:49:37
回答 1查看 1.7K关注 0票数 2

我目前正在编写一个快速脚本,为开发目的在本地部署多台迷航机器。这个过程的标准是将ssh键添加到迷航框中。

到目前为止,获取ssh键的路径相当容易:vagrant ssh-config | grep IdentityFile | awk '{print $2}'

它提供了预期的产出:

/Users/admin/vms/.vagrant/machines/deploy-node.vagrant/virtualbox/private_key /Users/admin/vms/.vagrant/machines/backend-node.vagrant/virtualbox/private_key /Users/admin/vms/.vagrant/machines/app-node.vagrant/virtualbox/private_key

但是,将结果传递给ssh-add会引发异常:

ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass):没有这样的文件或目录

当我逐一手动输入命令时,ssh-add工作正常:ssh-add /Users/admin/vms/.vagrant/machines/deploy-node.vagrant/virtualbox/private_key

身份补充..。

因此,我认为这个问题来自于awk的结果,它返回一个由3行组成的块,而不是每一行3次返回管道。

这种怀疑可以通过发出:vagrant ssh-config | grep IdentityFile | awk '{print $2}' | wc -l来证实,当我期望得到3倍的1值时,它返回3。

会不会有人知道如何分割awk的结果,使ssh-add正常工作?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-10-05 07:05:21

您可以通过排序awk将换行符(\n)添加到每一行中:

代码语言:javascript
复制
vagrant ssh-config | awk '/IdentityFile/{print $2"\n"}'

然后将其传输到ssh-add

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1081086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档