쉘 스크립트의 결과를 출력하기 위해 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