SSH 명령을 통한 여러 줄 출력

SSH 명령을 통한 여러 줄 출력

SSH 원격 명령을 통해 여러 줄 출력이 필요합니다.

내 로컬 컴퓨터에서 이 명령을 사용하면 올바른 출력을 얻습니다.

sudo docker stats --no-stream container1 container2 container3 | awk '{if (NR!=1) {print $1,$9,'$(date +%s)'}}'

container1 72.85 1471958776
container2 14.83 1471958776
container3 9.362 1471958776

원격으로 시작하면 개행 문자가 제거됩니다.

ssh -o LogLevel=QUIET -t -i key.pem user@host sudo docker stats --no-stream container1 container2 container3 | awk '{if (NR!=1) {print $1,$9,'$(date +%s)'}}'

container1 72.85 1471957426 container2 14.83 1471957426 container3 9.362 1471957426

로컬 출력(한 줄에 하나씩)과 동일한 결과를 얻으려면 어떻게 해야 합니까?

답변1

-t나는 이것이 논쟁 때문일 것이라고 믿는다 ssh. 이는 tty 할당을 강제하고 터미널 출력(색상, 제어 시퀀스)을 요청합니다. 그러나 출력을 로컬 터미널(이 작업을 수행하는 방법을 알고 있음)에 표시하는 대신 으로 파이프합니다 awk. (그것에서 얻는 내용을 정확히 보려면 ​​대신 을 ssh사용하십시오 .) 전송되지 않는 출력은 피해야 합니다. 터미널 상황을 해결하거나 숨겨진 제어 시퀀스를 정리해 보세요. 후자가 더 어렵기 때문에 전자를 추천합니다.cat -Aawk-t

답변2

나는 xargs다음 명령으로 문제를 해결했습니다.

echo ${RESULTS} | xargs -n3

관련 정보