reactjs - jq: 1 编译错误 jq: 错误: schedule/0 未定义在,第 1 行: .Christchurch.bus-schedule.from["Weekday"] |= 。+ [“1646”]
问题描述
我有一个反应应用程序,它使用 .sh 文件生成应用程序的一部分。但是我遇到了一个错误,它阻止了应用程序读取数据文件。
我查看了版本控制,.sh 文件中可能的语法更改emap.sh
这是.sh
文件
#!/bin/bash
object='{}'
find 'public/data' -type f -name '*.csv' | while read -r filename;
do
filename=$(echo "$filename" | sed 's/public\/data\///' | sed 's/ /\//')
city=$(echo "$filename" | cut -d'/' -f1)
medium=$(echo "$filename" | cut -d'/' -f2)
direction=$(echo "$filename" | cut -d'/' -f3)
date=$(echo "$filename" | cut -d'/' -f4)
time=$(echo "$filename" | cut -d'/' -f5| head -c-5)
object=$(echo $object | jq -c ".$city.$medium.$direction[\"$date\"] |= . + [\"$time\"]")
echo $object > public/available.json
done
它应该是成功的,这样当我们对应用程序进行纱线处理时,它会显示已读取数据,但是我们使用需要处理的信息在该区域中获得了一个没有数据的页面。
解决方案
shell 变量应该以更健壮的方式传递给 jq,例如按照以下方式:
jq -c --arg city "$city" \
--arg medium "$medium" \
--arg direction "$direction" \
--arg date "$date" \
--arg time "$time" \
'.[$city][$medium][$direction][$date] += [$time]'
不过,正如@OguzIsmail 指出的那样,您最好避免所有的混乱,只用find
and做所有事情jq
。
推荐阅读
- javascript - child_process 的节点 JS 生成
- r - 如何从R中的字符串中提取版本号
- python - 我如何修复ValueError:输入通道数与过滤器的相应维度不匹配,3!= 64
- javascript - 如何在 FlatList 中显示不同的内容
- java - 使用 JZMQ 和 PUB-SUB 套接字,为什么此测试代码无法接收我的消息?
- java - 我需要安装什么 Java 版本才能运行 Ardor 区块链公共服务器节点?
- android - 导航 PopUpToInclusive 不起作用?重新打开应用程序时,它会打开登录片段而不是电子邮件登录片段
- css - 等分容器中的css flex列(垂直)
- swift - Swift Combine:合并不同类型的发布者
- c++ - 使用 Dear ImGui 编译程序时经常出现链接器错误