json - 从文件 bash 中获取特定的字符串行
问题描述
我有一个带有这种带有模式的文本的文件
[{"foo":"bar:baz:foo*","bar*":"baz*","etc":"etc"},
{"foo2":"bar2:baz2:foo2*","bar2*":"baz2*","etc":"etc"},
{"foo3":"bar3:baz3:foo3*","bar3*":"baz3*","etc":"etc"},
{"foo4":"bar4:baz4:foo4*","bar4*":"baz4*","etc":"etc"}]
我需要像这样获取每个字符串
{"foo":"bar:baz:foo*","bar*":"baz*","etc":"etc"}
并通过 curl 将每个字符串发送到某个 url
for i in text.txt
do (awk,sed,grep etc)
then curl $string
我无法弄清楚如何在没有不必要符号的情况下从文件中正确获取所需的行
解决方案
使用jq
命令。这只是示例解析。
for k in $(jq -c '.[]' a.txt); do
echo "hello-" $k
done
输出:
hello- {"foo":"bar:baz:foo*","bar*":"baz*","etc":"etc"}
hello- {"foo2":"bar2:baz2:foo2*","bar2*":"baz2*","etc":"etc"}
hello- {"foo3":"bar3:baz3:foo3*","bar3*":"baz3*","etc":"etc"}
hello- {"foo4":"bar4:baz4:foo4*","bar4*":"baz4*","etc":"etc"}
你可以使用$k
你想要的循环内的任何地方。
for k in $(jq -c '.[]' a.txt); do
curl -d "$k" <url>
done
推荐阅读
- ssl - 生成没有配置文件的 OpenSSL CRL 文件
- r - 将 JSON 从文件读取到 tidyjson
- r - 如何解决 R 中的梵文脚本编码错误
- ios - SwiftUI:从导航栏按钮导航到下一个视图?
- c# - 使用不可见的滚动条滚动到页面底部
- email - 电子邮件消息:电子邮件消息的标题部分、电子邮件信封、电子邮件消息正文和 SMTP
- javascript - 如何从根应用程序开始导入?
- javascript - 如何修复 fsevents@2.1.3 不受支持的平台:想要 {"os":"darwin","arch":"any"}(当前:{"os":"win32","arch":"x64"})
- angular - 以角度动态显示过滤器结果计数
- excel-formula - 如何在单元格excel(公式)的路径中提取文件名?