shell中如何将中文进行左对齐右对齐,awk的printf不好使啊

如题所述

左对齐 sed 's/^[ \t]*//' your_file

右对齐 sed -e :a -e 's/^.\{1,79\}$/ &/;ta' your_file

居中 sed -e :a -e 's/^.\{1,78\}$/ &/;ta' -e 's/\(*\)\1/\1/' your_file

其中右对齐与居中均已80个字符为宽度
直接复制到命令行即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-06
$ ./xx8
|到目前您已帮助了250715位网友. |
| 到目前您已帮助了250715位网友.|

$ cat xx8
#!/bin/bash

awk 'BEGIN{
str = "到目前您已帮助了250715位网友."

printf("|%-40s|\n", str);
printf("|%40s|\n", str);
}'本回答被提问者和网友采纳
第2个回答  2012-12-07
linux-hg:~ # cat test
中文 英文 德语
linux-hg:~ # awk '{printf ("%8s\n",$1) }' test
中文
linux-hg:~ #
printf加个括号就好了
相似回答