嘿,现在基本上我的程序给了我这个输出:
BLABLABLA
TEXTEXOUAIGJIOAJGOAJFKJAFKLAJKLFJKL
TEXT
更多关于随机字符的文字
这是for循环的结果。现在这就是我想要的:
所以在我提供的例子中,我想要这样的输出:
BLABLABLA :
TEXTEXOUA..:
TEXT :
MORE TEXT..:
我也解决了问题的第一部分(当它超过10个字符时),只有第二部分给我带来了麻烦。
AMOUNT=definition here, just simplyfying so not including it
for (( i=1; i<="$AMOUNT"; i++ )); do
STRING=definition here, just simplyfying so not including it
DOTS="..:"
STRING_LENGTH=`echo -n "$STRING" | wc -c`
if [ "$STRING_LENGTH" -gt 10 ]
then
#Takes
STRING=`echo -n "${STRING:0:10}"$DOTS`
else
#now i dont know what to do here, how can i take my current $STRING
#and add spaces " " until we reach 10 characters. Any ideas?
fi
答案 0 :(得分:2)
Bash提供了一种获取存储在变量中的字符串长度的简单方法:${#STRING}
STRING="definition here, just simplyfying so not including it"
if [ ${#STRING} -gt 10 ]; then
STR12="${STRING:0:10}.."
else
STR12="$STRING " # 12 spaces here
STR12="${STR12:0:12}"
fi
echo "$STR12:"
您发布的预期输出与问题中的要求不符。我试图遵循这些要求并忽略了样本预期输出和您发布的代码。
答案 1 :(得分:0)
使用printf:
PADDED_STRING=$(printf %-10s $STRING)