Bash & Printf:我怎样才能同时右填充和截断?
Bash & Printf: How can I both right pad and truncate?
在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 右填充
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