2010-08-08 49 views

回答

5

嘗試命令使用printf shell命令:

$ printf "%5d %s\n" 1 test 
    1 test 
$ printf "%5d %s\n" 123 another 
    123 another 
+0

仍然導致第一個變量列「跳躍」高居右邊你給我的建議有助於變量之間的空間,但不會忽略每個變量的長度 – 2010-08-08 07:10:31

+0

如果你想要進一步的幫助,你將不得不舉例說明你所看到的。 – 2010-08-08 07:37:09

1

裁剪前導空格的變量,你可以使用bash的參數擴展內部:

var=" value" 
echo "${var#"${var%%[![:space:]]*}"}" 
+0

您可以省略內部引號集:'echo「$ {var#$ {var %% [![:space:]] *}}」' – 2010-08-08 12:56:17

0

使用tab鍵來分隔列。

echo -e "$var1\t$var2" 

,或者更好,使用printf做到這一點:

printf "%s\t%s\n" $var1 $var2 

或者像Greg Hewgill showed,使用字段寬度(甚至用繩子 - 連字符使他們左對齊):

printf "%-6s %-8s %10s\n" abcde fghij 12345