속성 중 하나를 기반으로 삭제 중복 된 JSON 파일

Sibgha :

내 리눅스 시스템에 두 개의 디렉토리를, /dir그리고/dir2

모두 4000 개 이상의 JSON 파일이 있습니다. 모든 파일의 JSON 내용은 같다

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

참고 URL이 배열이라고하지만, 항상 하나 개의 요소 (URL을)이 포함되어 있습니다.

URL은 파일 고유합니다. 거기 동일한 URL을 가진 파일 인 경우 /dir/dir2다음은 중복 그리고 그것은 삭제해야합니다.

나는 양호하게는 쉘 명령을 사용하거나이 작업을 자동화 할 수 있습니다. 나는 그것에 대해 이동하는 방법에 어떤 의견?

이스마일 오구 즈 :

사용 중복의 목록을 가져올 수 :

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 --

또는, 비 GNU의 xargs를과의 호환성을 위해 그가 -0아니라 -d:

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

그 파일 이름은 라인 피드를 포함하지 않아야합니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=199480&siteId=1