다음 명령을 사용하여 스크립트의 키 값 쌍 출력을 csv 파일로 변환하려고 합니다.
cat config/password | ssh -tt -J support@$gateway support@$ip "$(<${base}/systemkv.sh)" 3>/dev/null | tee /tmp/log | cut -d ':' -f2 | paste -s -d ',' - | tee -a /tmp/output.csv
위 명령은 마지막 행만 표시하거나 마지막 행이 다른 행과 겹칩니다.
cut 명령은 아래 명령과 완벽하게 작동하지만 sudo 명령은 허용하지 않습니다.
cat config/password | ssh -J support@$gateway support@$ip "$(<${base}/systemkv.sh)" 3>/dev/null | tee /tmp/log | cut -d ':' -f2 | paste -s -d ',' - | tee -a /tmp/output.csv
예상 출력
first:Sujit
last:Maharjan
Sujit,Maharjan
실제 출력
first:Sujit
last:Maharjan
,Maharjan
답변1
범인은 캐리지 리턴 문자인 것 같습니다. 를 사용하여 \r을 제거했습니다.
ssh ... | tr -d '\r' | ...
이제 명령이 완벽하게 작동합니다.
도움을 주신 @Jeff Schaller와 @Haxiel에게 감사드립니다.