2014-11-17 2 views
0

JSON 데이터 앞에 일부 텍스트가 포함 된 파일이 있습니다. 나는 텍스트를 제거하려고 그냥 내가 사용하고있어 JSON을 유지 해요 :이 명령의 결과는 터미널에서 잘 작동 sed, JSON 및 중괄호

sed -n '/{"data"/,$p' myfile.txt 

는 - 그것은 단지 JSON 반환하지만 나는를 누르면

sed -n '/{"data"/,$p' myfile.txt > output.json 

"output.json"에는 여전히 텍스트가 있습니다. 중괄호를 올바르게 이스케이프 처리하는 데 문제가 있다는 것을 알고 있고 sed는 정규식으로 데이터를 처리하지만 어떻게 피할 수 있는지 알지 못합니다.

+4

문제를 설명하는 JSON의 일련 번호 세트를 포함하도록 Q를 편집하십시오. 추측을 사용하지 마십시오 ;-) – shellter

+0

구조화 된 데이터를 조작하기 위해 선 지향 도구를 사용하지 마십시오. 입력 형식을 제대로 이해하고 파손하지 않도록주의를 기울이는 훌륭한 JSON 도구가 있습니다. – tripleee

+0

@shellter - 여기 myfile.txt로 가지고있는 것의 좋은 예가 있습니다 : https://code.google.com/p/droidbox/issues/detail?id=59 JSON 데이터를 얻고 싶습니다. – g03l

답변

0

좀 더 조사한 결과 원본 "myfile.txt"(JSON + 일부 텍스트)를 생성하는 스크립트 (내 텍스트가 아님)가 특수 문자를 추가한다는 것을 알았습니다. 나는이 문자가 파일에 존재한다는 사실로 인해 시스템이 이진 파일이라고 생각하여 내 문제가 있다고 생각합니다.

내가 "cat -v output.json"을했을 때 "cat output.json"을 수행하면 표시되지 않는 추가 텍스트를 볼 수있었습니다.

해결 방법으로 일부 원본 텍스트를 추가하지 않기 위해 원본 스크립트를 수정했습니다.

수정 된 스크립트를 사용하면 생성 된 "myfile.txt"를 sed로 파싱 할 수 있으며 위의 제안 사항은 훌륭하게 작동합니다.

나를 도와 주려고 시간을 보내고 기여한 사람 덕분입니다.