路由命令中的Bash解析输出

时间:2017-05-26 14:44:55

标签: linux bash networking

我正在编写一个bash脚本来注册无线网络中的远程主机。我正在获取远程IP,但我需要帮助来解析输出。这是我的输出:

$ IPS=`route -n | grep -e '10.0.0' | awk '{ print $1 }'`
$ echo $IPS
10.0.0.2
10.0.0.3

我需要获取这些IP并插入... <remote_ip_1> ...

之类的命令

怎么做?我无法在答案中找到这种情况。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用类似

的内容
route -n | awk '/10.0.0/ { system("command to be executed with "$1) }'
                                                                  ^
                                                             added missing )

我们否定使用grep并使用//来搜索所需的文本,然后使用awk系统函数来执行命令以及$ 1

答案 1 :(得分:0)

尝试以下方法:

route -n | grep -e '10.0.0' | awk '{ print $1 }' | xargs -L 1 your_command

例如,请尝试以下操作:

route -n | grep -e '10.0.0' | awk '{ print $1 }' | xargs -L 1 echo "===>"

参数-L 1告诉xargs每个IP运行一个命令。有关详细信息,请参阅man xargs