在 Bash 中...
我知道如何用 printf 右填充
printf "%-10s" "potato"
我知道如何用 printf 截断
printf "%.10s" "potatos are my best friends"
我怎样才能同时做这两件事?
LIST="aaa bbbbb ccc ddddd"
for ITEM in $LIST; do
printf "%-.4s blah" $ITEM
done
这打印
aaa blah
bbbbb blah
ccc blah
ddddd blah
我要打印
aaa blah
bbbb blah
ccc blah
dddd blah
我宁愿不做这样的事情(除非没有其他选择):
LIST="aaa bbbbb ccc ddddd"
for ITEM in $LIST; do
printf "%-4s blah" $(printf "%.4s" "$ITEM")
done
不过,很明显,这行得通(感觉很丑陋而且很老套)。
最佳答案
您可以使用 printf "%-4.4s
在输出中获取两种格式:
for ITEM in $LIST; do printf "%-4.4s blah\n" "$ITEM"; done
aaa blah
bbbb blah
ccc blah
dddd blah
关于 bash & Printf : How can I both right pad and truncate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29350992/