bash - 从转义的 json 行中获取唯一值
问题描述
嗨,我有一个带有转义 json 行的大文件,其中包含以下内容:
\"format\":\"html\",\"other\":\"foo\"....
\"format\":\"txt\",\"other\":\"buz\"....
\"format\":\"html\",\"other\":\"bar\"....
我怎样才能获得“格式”的所有唯一值?我需要类似的东西
\"format\":\"html\"
\"format\":\"txt\"
解决方案
假设您的文件内容与您显示的一样,即行开始像这三个示例(但值在每一行上继续,如 所示...
),并给出您使用的标签“awk”,怎么样:
awk -F, '{formats[$1]=1} END {for (f in formats) print f}' yourfile.dat
也就是说,sort
结合使用awk
可能更可取:
awk -F, '{print $1}' yourfile.dat | sort -u
鉴于您提供的数据,这两种方法都会产生:
\"format\":\"html\"
\"format\":\"txt\"
推荐阅读
- java - 在 url 中发送用户名和密码
- angular - 开始角
- angular - Angular 6 - 无法解析 AppComponent 的所有参数
- javascript - 在地图功能中反应 onClick 功能
- c# - 如何使用 C# 正则表达式在日期中屏蔽月份值
- kubernetes - 在 GKE 中配置 kube-proxy
- azure-application-insights - 我在逻辑应用程序中使用可视化分析查询。我找不到在查询中写入要使用的应用洞察数据源的方法
- c++ - 在 IShellFolder::EnumObjects() 中使用 IShellBrowser::BrowseObject()
- angularjs - 添加和删除子组件
- javascript - 使用javascript在新表格行中设置文本框的值