话不多说,直接开始
python的格式化输出
(一)用 {} 花括号 格式化的关键字是 .format(要格式化的内容)
eg:
name = "test"
age = 18
print("我的名字是{},我今年{}岁。".format(name,age)) # 两个{} 替换的name,age相当于占位符
print("我的名字是{a},我今年{b}岁。".format(b=name,a=age)) #{a}、{b}关键字参数,占位符作用,替换name,age变量
(二)%格式化操作 %s 替换的是所有类型 %d替换的整型 int
name = "test"
age = 18
print("我的名字是%s,我今年%d岁。"%(name,age))
print("我的名字是%s,我今年%s岁。"%(name,age))
awk的printf函数
eg1:
echo "Linux" | awk '{printf "|%-15s|\n",$1}'
|Linux |
说明:对于echo命令的输出,Linux是经管道发给awk。printf函数包含一个控制串。百分号让printf做好准备,它要打印一个占15个格、向左对齐的字符串,这个字符串夹在两个竖杠之间,并且以换行符结尾。百分号后的短划线表示左对齐。控制串后面跟了一个逗号和$1。printf将根据控制串中的格式说明来格式化字符串Linux。
eg2:
echo "Linux" | awk '{printf "|%15s|\n",$1}'
| Linux|
说明:字符串Linux被打印成一个占15 格、向右对齐的字符串,夹在两个竖杠之间,以
换行符结尾。
eg3:
cat employees
Tom Jones 4424 5/12/66 543354
Mary Adams 5346 11/4/63 28765
Sally Chang 1654 7/22/54 650000
Billy Black 1683 9/23/44 336500
awk '{printf "The name is: %-15s ID is %8d\n",3}' employees
The name is Tom ID is 4424
The name is Mary ID is 5346
The name is Sally ID is 1654
The name is Billy ID is 1683
说明:要打印的字符串放置在两个双引号之间。第一个格式说明符是%-15s,它对应的参数是$1,紧挨着控制串的右半边引号后面的那个逗号。百分号引出格式说明:短划线表示左对齐,15s表示占15格的字符串。这条命令用来打印一个左对齐、占15格的字符串,后面跟着字符串的ID和一个整数。
shell的格式化输出
shell的echo函数
echo -e识别转义和特殊意义的符号,如换行符、n、制表符\t、转义符\等。
[root@xuexi tmp]# echo 'Hello World!\n';echo "Hello World"!
Hello World!\n
Hello World!
[root@xuexi tmp]# echo -e 'Hello World!\n';echo "Hello World"!
Hello World!
#换行
Hello World!
shell的printf的格式化输出
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
运行
姓名 性别 体重kg
郭靖 男 66.12
杨过 男 48.65
郭芙 女 47.99
%s %c %d %f都是格式替代符
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。
eg:
printf "%d %s\n" 1 "abc"
printf %s abcdef
printf %s abc def
printf "%s %s %s\n" a b c d e f g h i j
等等等等
希望大家了解一下
网友评论