다음 텍스트가 포함된 JSON 파일이 있습니다.
{"category": "yyy", "id": "xxxyyy", "environment": "fff", "client": "000000", "user": "Alex", "log_time": "xxx", "source_context": null}
user
해당 파일에서 키를 찾아 해당 값을 정확히 동일한 크기( = , = ) Alex
로 바꿔야 합니다 . 명령을 사용해 보았지만 제대로 작동하지 못했습니다.XXXX
Alex
XXXX
Tom
XXX
sed
답변1
텍스트 지향 파서(예: )를 사용하면 안 됩니다 sed
. 대신 JSON 인식 파서를 사용하세요(예: jq
.
시스템에 이 도구가 있으면 간단히 다음을 수행할 수 있습니다.
jq '.user |= gsub(".";"X")' file
이렇게 하면 모든 키 문자열이 user
동일한 수의 X
문자로 대체됩니다.
jq
이를 지원하지 않으면 다음 gsub
과 같이 사용할 수 있습니다.
jq '.user |= ([range(0;length)]|.[]="X"|add)' file