arrays - 用数组填充的循环仅填充第一个元素
问题描述
我正在尝试遍历文件(nodeListTxt 是一个文件路径数组)并 grep 时间戳。然而,所有 4 个时间戳似乎都在填充数组的第一个元素,而不是每个时间戳一个元素。此外,如果 grep 语句没有获取 4 个时间戳,则 echo $iter 仅将 1 打印到终端,这表明循环不起作用。不知道如何解决这个问题
recieveTimes=()
sentTimes=()
printTestHeader "Trace Behavior"
for i in "${nodeListTxt[@]}"
do
iter=$((iter + 1))
echo $iter
echoSleep 5
recieveTimes[$iter]=$(grep -m 1 '\"path\":' ${i}| sed 's/.*timestampUtc\"://g' | sed 's/,.*//g')
sentTimes[$iter]=$(grep -m 2 '\"path\":' ${i}| sed 's/.*timestampUtc\"://g' | sed 's/,.*//g')
done
回声
解决方案
推荐阅读
- sql-server - 如何在 SQL Server 中的项目代码上找到 max(sortnumber)?
- ruby-on-rails - 使用多个 Bundler 版本
- docker - dockerfile apt-get cache 会导致不同的 docker 容器吗?
- php - 更大和更小的 Web 开发人员如何在部署之前测试他们的代码?
- javascript - 如何从 html 文件输入中加载 geojson 数据?
- python - Scrapy 不会产生 DNS 查找失败网站的网址
- javascript - 如何添加点击图像和弹出通知然后打开新标签?
- linux - Yocto 中的 IMAGE_FEATURES 与 IMAGE_INSTALL
- java - mysql中的float和double数据类型不存储我的java程序所需的完整数字
- objective-c - 如何在我的应用程序外部获取鼠标位置的文本(无需单击和拖动并选择)?