首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为了在另一个脚本中使用解析后的数据,我如何一次返回一行grep结果?

为了在另一个脚本中使用解析后的数据,我如何一次返回一行grep结果?
EN

Stack Overflow用户
提问于 2013-06-11 21:49:07
回答 3查看 1.8K关注 0票数 2

我有一个我在工作中使用的脚本,我想扩展一下。我当前使用的脚本将IP地址作为arg,并将zip文件推送到该设备上的特定目录。该设备是Android设备,我推送到的特定目录用于使用推送的新数据触发设备恢复。

我正在寻找一种方法来扫描网络,识别所有连接的android设备,然后将新的固件推送到每个设备上。由于推送部分已经很容易完成,我需要它来找到一种方法来扫描和识别每个连接的设备的IP。

我想出了:

代码语言:javascript
运行
复制
nmap -sL 10.111.1.0/24 | grep android | grep -oE '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}'

它将在网络中跳跃,查找行中包含"android“的任何内容,然后解析并返回这些行的IP地址。问题是,我不知道如何一次获取一个IP地址,并从这里将它们提供给脚本。有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2013-06-11 21:56:05

您可以在任何时候使用for循环和子where,只要您想要对管道的结果采取行动:

代码语言:javascript
运行
复制
for ip in $( nmap -sL 10.111.1.0/24 | grep android | grep -oE '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' ); do
  echo "W00t! I found this ${ip}"
  /path/to/script "${ip}"
done
票数 2
EN

Stack Overflow用户

发布于 2013-06-11 22:08:34

我会使用while循环,并使用一个set来解析从grep获得的任何内容。

代码语言:javascript
运行
复制
(nmap -sL 10.111.1.0/24 | grep android | grep -oE '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | \
while read -a device; do
    echo ${device[0]}
    echo ${device[1]}
    ...
    /path/to/script ${device[2]} #the number that represents the ip address (I don t know wich one it will be depends what your grep gives)
 done)

现在,您可以获取IP地址并将其推送到脚本中

票数 2
EN

Stack Overflow用户

发布于 2013-06-11 22:22:02

将其读入数组:

代码语言:javascript
运行
复制
read -a devices < <(nmap -sL 10.111.1.0/24 | grep android | grep -oE '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}')

然后将其发送到脚本:

代码语言:javascript
运行
复制
/path/to/script "${devices[@]}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17045812

复制
相关文章

相似问题

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