首页 > 解决方案 > 从转义的 json 行中获取唯一值

问题描述

嗨,我有一个带有转义 json 行的大文件,其中包含以下内容:

\"format\":\"html\",\"other\":\"foo\"....
\"format\":\"txt\",\"other\":\"buz\"....
\"format\":\"html\",\"other\":\"bar\"....

我怎样才能获得“格式”的所有唯一值?我需要类似的东西

\"format\":\"html\"
\"format\":\"txt\"

标签: bashawk

解决方案


假设您的文件内容与您显示的一样,即行开始像这三个示例(但值在每一行上继续,如 所示...),并给出您使用的标签“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\"

推荐阅读