터미널에서 잘 작동하는 셸 명령을 가지고 있는데 노드의 child_process
오류가 발생하면 오류가 발생합니다.노드의 child_process에서 이상한 파이프 동작이 발생합니까?
cat /tmp/file.json | jq
가 child_process
로부터 동일한 명령을 실행한다 : 생성
var cp = require("child_process");
var command = "cat /tmp/gen_json | jq";
cp.exec(command, function(err, stdout, stderr) {
stderr ? console.log(stderr) : console.log(stdout);
});
:
여기 단말기 에 (file.json JSON 파일 인) 사용 된 명령이고jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]
jq is a tool for processing JSON inputs, applying the
given filter to its JSON text inputs and producing the
...
jq
을 실행할 때 표시되는 기본 메시지입니다. 앞 파이프가없는 것처럼 그냥 jq
을 실행 한 것입니다.
파이프 행동과 관련되지 않음을,하지만 당신은 여기에'cat' 필요하지 않습니다 (그것이 실제 명령 인 경우). 'jq '..filter ..'/ tmp/file.json'을 시도해보십시오. – randomir
제 경우에는 @randomir'cat'이 필요합니다.'jq/tmp/file.json'을 실행하면'unexpected '/''로 중단되기 때문입니다. 나는'cat'이'jq' 전에 파일을 파싱하게 할 때 그 오류를 얻지 못합니다. (pastebin으로 json으로 업데이트 된 질문) –
'jq'는 필수 필터가 필요합니다. 시도해보십시오 :'cat file | jq '.' '. 이것은 다른 문제도 해결합니다 :'jq '.' 파일 '. – randomir