繁体   English   中英

如何使用包含带引号的 grep 的 ssh -t 命令

[英]How to use ssh -t command which includes grep with quotes

我正在尝试将 IP 地址中的第三个八位字节 grep 到远程机器上的 Tap 设备。

ssh -t user@host "/sbin/ifconfig tap0 | grep "inet" | /usr/bin/awk -F'[: ]+' '{ print $4 }' | awk -F'[.]' '{print $3}'"

我的结果是:

inet addr:10.22.66.77  Bcast:10.22.66.255  Mask:255.255.255.0

当我在远程机器上运行命令时,它显示 66

如何使它与 ssh -t 一起使用?

有时使用 perl 更简单:

ssh -t user@host "/sbin/ifconfig tap0" | perl -n -e 'if (/inet\saddr:\d+\.\d+\.(\d+)/) { print "$1\n"}'

它在本地机器上运行正则表达式模式,匹配 addr: 之后的第三个八位字节,然后通过 $1 打印

模式匹配在本地机器上运行以避免转义“的问题”(在您的示例代码中,grep inet 中的“似乎终止了 ssh...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM