首页 > 解决方案 > bash脚本将字符串数组拆分为设计输出

问题描述

日志文件中的数据类似于:

"ipHostNumber: 127.0.0.1
ipHostNumber: 127.0.0.2
ipHostNumber: 127.0.0.3"

这是我的代码片段:

readarray -t iparray < "$destlog"
unset iparray[0]

for ip in "${iparray[@]}"
do
   IFS=$'\n' read -r -a iparraychanged <<< "${iparray[@]}"
done

我想要接收的是将 IP 传输到另一个阵列,然后从该阵列读取每一行并 ping 它。

更新:我已经承认了一些事情,可能我想要一个数组到另一个数组但没有一些字符串,在这种情况下剪切“ipHostNumber:”并且只保留IP。

先谢谢了,如果有什么遗漏请告诉我。

标签: arraysstringbashscriptingscript

解决方案


为什么你需要数组?只需阅读输入并完成工作。

while IFS=' ' read -r _ ip; do
   ping -c1 "$ip"
done < "$destlog"

请参阅https://mywiki.wooledge.org/BashFAQ/001

另一种方法是使用 xargs 和过滤:

awk '{print $2}' "$destlog" | xargs -P0 -n1 ping -c1

推荐阅读