我有一个包含多个主机的 ssh 配置文件,每个主机都预先配置了一些端口转发
Host host
HostName host.server.com
User user
LocalForward 1234 localhost:9911
LocalForward 5678 localhost:9922
有没有一种简单的方法来显示类似的文本
Service 1 (port: 9911) forwarded to port: 1234
Service 2 (port: 9922) forwarded to port: 5678
登录时?
答案1
awk解决方案:
awk '/LocalForward/
{ count++;
split($3,arr,":");
printf "Service %i ( port: "arr[2]") forwarded to port : "$2"\n",count
}' ssh_config
任何 LocalForward 行的模式匹配,然后增加变量计数。使用 分割行上的第三个空格分隔字段:将结果放入数组 (arr) 中。打印提取 arr 数组中第二个元素所需的文本以及该行上第二个空格分隔的数据段。