Sir*_*ert 3 bash printf truncate padding
在Bash ......
我知道如何用printf正确填充
printf "%-10s" "potato"
Run Code Online (Sandbox Code Playgroud)
我知道如何用printf截断
printf "%.10s" "potatos are my best friends"
Run Code Online (Sandbox Code Playgroud)
我怎么能同时做到这两件事?
LIST="aaa bbbbb ccc ddddd"
for ITEM in $LIST; do
printf "%-.4s blah" $ITEM
done
Run Code Online (Sandbox Code Playgroud)
这打印
aaa blah
bbbbb blah
ccc blah
ddddd blah
Run Code Online (Sandbox Code Playgroud)
我想要它打印
aaa blah
bbbb blah
ccc blah
dddd blah
Run Code Online (Sandbox Code Playgroud)
我宁愿不做这样的事情(除非别无选择):
LIST="aaa bbbbb ccc ddddd"
for ITEM in $LIST; do
printf "%-4s blah" $(printf "%.4s" "$ITEM")
done
Run Code Online (Sandbox Code Playgroud)
虽然,显然,这是有效的(感觉丑陋和hackish).
您可以使用它printf "%-4.4s来获取输出中的两种格式:
for ITEM in $LIST; do printf "%-4.4s blah\n" "$ITEM"; done
aaa blah
bbbb blah
ccc blah
dddd blah
Run Code Online (Sandbox Code Playgroud)