美文网首页
python,awk,shell格式化输出内容全解

python,awk,shell格式化输出内容全解

作者: 单细胞空间交响乐 | 来源:发表于2019-12-23 15:10 被阅读0次

    话不多说,直接开始

    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",1,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
    等等等等
    希望大家了解一下

    相关文章

      网友评论

          本文标题:python,awk,shell格式化输出内容全解

          本文链接:https://www.haomeiwen.com/subject/asbznctx.html