Bash-Shell에서 printf를 사용한 I/O 형식

Bash-Shell에서 printf를 사용한 I/O 형식

쉘 스크립트의 결과를 출력하기 위해 printf를 사용하려고 합니다. 열의 결과를 정렬하기 위해 탭을 다음과 같이 사용합니다.

printf "%s\t %s\t %s\t %s\t %s\t %s\t %s\n" $i $est $var_m $jk $mst $var_M  $Tes >>tmp

그러나 문제는 어떤 경우에는 결과가 약간 길다는 것입니다. 예를 들어 출력은

var_M=`echo "scale=8;(-1/$jk + (e(2*$jk)+1)/(e(2*$jk)-1))"|bc -l `

따라서 인쇄 형식을 다음과 같이 열로 설정할 수 있다면 더 좋을 것입니다.

printf "%s *goto column 20* %s *go to column 30* " $i $est >>tmp

가능합니까?

나는 확인했다이 스레드매뉴얼 페이지도 있지만 찾을 수 없습니다. 가능합니까?

참고: 나는 printf를 고수해야 할 특별한 이유가 없습니다. 따라서 이를 (쉽게) 수행할 수 있는 다른 적절한 명령도 환영합니다.

편집하다:시도: printf "%-2s %-8s\n" $i $est >>tmp 이것은 분명히 작동하지 않습니다.

4.0 0.17169E-02
5. 0.17156E-02
10. 0.17129E-02

(두 번째 행/두 번째 열은 목록 형식 출력의 경우와 마찬가지로 정렬되지 않습니다.)

답변1

이 시도:

printf "%-20s %-30s" $i $est >>tmp

관련 정보