2017-12-23 5 views
-2

쉘에서 표를 만들어야합니다. 그래서, 저는 먼저 가장 긴 문자열을 검색하고, 그 다음에는 모든 컬럼이 그 길이를 갖도록 포맷 할 것이라고 생각했습니다. 내 문제는 내가 printf 변수에 삽입 할 수 없다는 것입니다.Linux에서 printf로이 문제를 어떻게 해결할 수 있습니까?

while read line 
do 
    printf "%-$longestfile s" $line 
done < fajlok.txt 
+0

테스트 가능한 입력 단편과 예상 결과를 게시하면 훨씬 좋을 것입니다. – RomanPerekhrest

답변

1

표준 쉘 변수 처리 : 당신은 printf와이 양식 사용할 수 있습니다

printf "%-${longestfile}s" "$line" 
0

: 폭이 문자 * 경우

printf '$-*s' "$longestfile" "$line" 

는,이 있어야 여기 내 코드입니다 인수리스트의 수치 사용 한편


, column -t 컬럼 교정에 유용하다. 예를 들어 column -t와 또 다른 이점은 당신이 아마 가장 긴 열 너비를 계산하지 않아도됩니다

for i in {1..12}; do echo $RANDOM; done | paste -d " " - - - 

for i in {1..12}; do echo $RANDOM; done | paste -d " " - - - | column -t 

을 고려하십시오.

관련 문제