这行代码:
printf 'ddd %-22s dddd \n' "eeeeeee"
左对齐。
我可以使用什么来将它与中心对齐:
ddd eeeeeee dddd
答案 0 :(得分:2)
有点棘手......但是这个怎么样? ;)
STR="eeeeeee"; printf 'ddd %11s%-11s dddd \n' `echo $STR | cut -c 1-$((${#STR}/2))` `echo $STR | cut -c $((${#STR}/2+1))-${#STR}`
答案 1 :(得分:0)
只需在它周围添加一些标签?
printf "ddd\t\teeeeee\t\tddd"
答案 2 :(得分:0)
printf不支持它,但很容易实现它:
D="12" # input string
BS=10 # buffer size
L=$(((BS-${#D})/2))
[ $L -lt 0 ] && L=0
printf "start %${L}s%s%${L}s end\n" "" $D ""