Unix printf는 예상대로 문자열 형식을 지정하지 않습니다. 대신 형식 지정 문자열을 인쇄합니다.

Unix printf는 예상대로 문자열 형식을 지정하지 않습니다. 대신 형식 지정 문자열을 인쇄합니다.

명령을 사용하여 일부 ENV 변수를 .txt 파일에 쓰고 싶습니다 printf(env 변수가 설정되지 않았기 때문에 비어 있는 줄은 무시합니다).

printf '%-79s' "${foo1}${bar1}" | grep -v '^\s\{79\}' >> foobar.txt
printf '%-79s' "${foo2}${bar2}" | grep -v '^\s\{79\}' >> foobar.txt
...

내 로컬 WSL 및 Docker 환경(centos 7)에서는 예상대로 작동합니다. 그러나 스크립트가 실행되어야 하는 서버에서는 79sfoobar.txt 파일에만 인쇄됩니다.

cat foobar.txt
79s
79s

printf명령이 예상대로 작동하지 않는 이유를 아는 사람이 있습니까 ?

다른 솔루션을 제안해 주세요. 하지만 원격 서버에서 명령이 예상대로 작동하지 않는 이유도 매우 궁금합니다.

관련 정보