加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 根据其中一个属性删除重复的JSON文件

发布时间:2020-12-15 08:29:02 所属栏目:Java 来源:网络整理
导读:我的 linux系统中有两个目录,/ dir和/ dir2 两者都有超过4000个JSON文件.每个文件的JSON内容都是这样的 { "someattribute":"someValue","url":[ "https://www.someUrl.com/xyz" ],"someattribute":"someValue"} 请注意,url是一个数组,但它始终包含一个元素(u
我的 linux系统中有两个目录,/ dir和/ dir2

两者都有超过4000个JSON文件.每个文件的JSON内容都是这样的

{
   "someattribute":"someValue","url":[
      "https://www.someUrl.com/xyz"
   ],"someattribute":"someValue"
}

请注意,url是一个数组,但它始终包含一个元素(url).

该URL使该文件唯一.如果/ dir和/ dir2中存在具有相同URL的文件,则它是重复的,需要将其删除.

我想优先使用shell命令自动执行此操作.任何意见我应该如何去做?

解决方法

使用 jq获取重复列表:

jq -nr 'foreach inputs.url[0] as $u (
    {}; .[$u] += 1; if .[$u] > 1 then input_filename else empty end
)' dir/*.json dir2/*.json

要删除它们,请将命令输出上方的管道输出到xargs:

xargs -d $'n' rm --

或者,为了与具有-0但不是-d的非GNU xargs兼容:

tr 'n' '' | xargs -0 rm --

请注意,文件名不得包含换行符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读