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 -A
awk
-t
답변2
나는 xargs
다음 명령으로 문제를 해결했습니다.
echo ${RESULTS} | xargs -n3