Bash - 强制固定变长,我可以比这更容易吗?

时间:2015-02-10 15:29:04

标签: bash variables

我需要转换变量,因此它具有精确的长度,如果它太短,则将其扩展为空格,它太长,然后剪切它。例如。对于11个字符的变量

$ var1=a
$ echo ${#var1}
1
$ var1=$(echo $var1 | sed 's/$/           /' | cut -c 1-11)
$ echo ${#var1}
11

虽然上面有效,但对于我需要长字符串的情况来说似乎并不是很方便,所以我正在寻找更合适和更优雅的东西。

1 个答案:

答案 0 :(得分:2)

使用printf

formatted=$(printf "%11.11s" "$var1")

<强>示例:

printf "%11.11s\n" "a"
          a

printf "%11.11s\n" "abcdefghijklmnop"
abcdefghijk

你可以看到它输出精确到11个字符长。