linux - 如何一次返回一行 grep 结果以便在另一个脚本中使用解析后的数据?

标签 linux bash shell scripting terminal

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

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

我想出了:

nmap -sL 10.111.1.0/24 | grep android | grep -oE '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}'

它将通过网络反弹,找到行中带有“android”的任何内容,然后解析并返回这些行的 IP 地址。问题是,我不知道如何一次获取一个 IP 地址并将它们从这里输入到脚本中。有什么想法吗?

最佳答案

只要您想要对管道的结果执行此模式,就可以使用 for 循环和子 shell:

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

关于linux - 如何一次返回一行 grep 结果以便在另一个脚本中使用解析后的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17045812/

相关文章:

linux - 有没有办法显示 linux 缓冲区缓存未命中?

c - 如何解码Linux中系统调用的输入标志?

perl - 无需正则表达式的简单搜索和替换

perl - Perl 中的 bash 导出等效于什么?

linux - 如何删除 600 GB 的小文件?

linux - 传递答案时出现无限循环问题

C 结构错误 "pointer to incomplete class type is not allowed"

linux - 使用curl上传图片

git - 权限被拒绝错误 - jenkins(shell 脚本)

linux - 使用 sed 提取电子邮件地址