Sibgha :
내 리눅스 시스템에 두 개의 디렉토리를, /dir
그리고/dir2
모두 4000 개 이상의 JSON 파일이 있습니다. 모든 파일의 JSON 내용은 같다
{
"someattribute":"someValue",
"url":[
"https://www.someUrl.com/xyz"
],
"someattribute":"someValue"
}
참고 URL이 배열이라고하지만, 항상 하나 개의 요소 (URL을)이 포함되어 있습니다.
URL은 파일 고유합니다. 거기 동일한 URL을 가진 파일 인 경우 /dir
와 /dir2
다음은 중복 그리고 그것은 삭제해야합니다.
나는 양호하게는 쉘 명령을 사용하거나이 작업을 자동화 할 수 있습니다. 나는 그것에 대해 이동하는 방법에 어떤 의견?
이스마일 오구 즈 :
사용 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 --
또는, 비 GNU의 xargs를과의 호환성을 위해 그가 -0
아니라 -d
:
tr '\n' '\0' | xargs -0 rm --
그 파일 이름은 라인 피드를 포함하지 않아야합니다.