이전 명령의 결과를 노드에 변수로 전달하려면 어떻게 해야 합니까?

이전 명령의 결과를 노드에 변수로 전달하려면 어떻게 해야 합니까?

Redis에서 데이터를 디코딩하는 스크립트를 만들려고 합니다. 노드 스크립트로 만들 수도 있지만 최대한 간단하게 만들고 싶습니다.

지금까지 내가 얻은 것은 다음과 같습니다.

redis-cli GET "d1g8y" | xargs -i node -e "require('zlib').gunzip(Buffer.from('{}', 'base64'), function(err, string) { console.log(string.toString()); })"

그러나 이것은 작동하지 않습니다. 이 명령의 결과를 얻어 redis-cli GET "d1g8y"이 스크립트에 넣으려면 어떻게 해야 합니까?Buffer.from('$VARIABLE_FROM_PREVIOUS_COMMAND', 'base64')

이것이 데이터를 압축하는 방법입니다

const zlib = require('zlib');

const zipAsync = Promise.promisify(zlib.gzip, {context: zlib});
return zipAsync(Buffer.from(value)).then(console.log);

감사해요.

답변1

왜 그것을 사용합니까 node? 곡사포로 사슴을 사냥하는 것과 비슷하지 않나요?

redis-cli GET "d1g8y" | zcat | base64 --decode

zcatgzip으로 압축된 데이터를 일반 텍스트로 변환합니다. 귀하의 경우에는 base64로 인코딩된 문자열이므로 디코더에 파이프하기만 하면 됩니다.

관련 정보