zoukankan      html  css  js  c++  java
  • Linux常用基本命令:三剑客命令之-awk格式化动作

    我们之前说过,awk是一个超强的文本格式化工具,而本文的printf动作就是经常用来做格式化文本的。使用方式跟c语言的printf差不多.

    1,printf默认不会回车换行

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{print "abc"}'
    abc
    ghostwu@dev:~/linux/awk$ awk 'BEGIN{printf "abc"}'
    abcghostwu@dev:~/linux/awk$ 

    2,我们需要像c语言一样,用转义字符 ,输出换行

    ghostwu@dev:~/linux/awk$ awk 'BEGIN{printf "%s
    ", "ghostwu"}'
    ghostwu

     小结:

    1)使用printf动作 输出的文本不会换行,如果需要换行,可以在对应的"格式替换符"后加入" "进行转义

    2)使用printf动作时,"指定的格式" 与 "被格式化的文本" 之间,需要用"逗号"隔开

    3)使用printf动作时,"格式"中的"格式替换符"必须与 "被格式化的文本" 一一对应

    3,一一对应的 “被格式化的文本” 与 "格式替换符

    ghostwu@dev:~/linux/awk$ awk '{printf "第一列: %s  第二列: %s 第三列: %s
    ", $1, $2, $3}' ghostwu.txt 
    第一列: ghostwu  第二列: 20 第三列: man
    第一列: zhangsan  第二列: 22 第三列: woman
    第一列: lisi  第二列: 23 第三列: woman

    4,用 -v FS指定输入分隔符,然后用printf格式化分隔后的文本

    ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
    ghostwu-20-man
    zhangsan-22-woman
    lisi-23-woman
    
    ghostwu@dev:~/linux/awk$ awk -v FS=- '{printf "%s	 %s	 %s
    ", $1, $2, $3}' ghostwu.txt 
    ghostwu     20     man
    zhangsan     22     woman
    lisi     23     woman

    5,常用的字符串格式化, 10s -10s.   10s:字符串宽度为10,不足10位,左边补空格,就形成了右对齐方式, -10s就是左对齐方式

    ghostwu@dev:~/linux/awk$ awk -v FS="-" 'BEGIN{printf "%10s	 %10s	 %10s
    ", "姓名", "年龄", "性别"}  {printf "%10s	 %10s	 %10s
    ", $1, $2, $3 }' ghostwu.txt
            姓名             年龄             性别
       ghostwu             20            man
      zhangsan             22          woman
          lisi             23          woman
    ghostwu@dev:~/linux/awk$ awk -v FS="-" 'BEGIN{printf "%-10s	 %-10s	 %-10s
    ", "姓名", "年龄", "性别"}  {printf "%-10s	 %-10s	 %-10s
    ", $1, $2, $3 }' ghostwu.txt
    姓名             年龄             性别        
    ghostwu        20             man       
    zhangsan       22             woman     
    lisi           23             woman   
  • 相关阅读:
    JS面向对象的程序设计
    dede 调用自定义图片时新增了很多html结构的解决方法
    dedecms arclist 栏目文章列表调用标签
    POJ 3145 Harmony Forever
    URAL K-based Numbers(1-3)
    POj 3420
    Ural 1004 FLOYD最小环问题
    noip2016提高组总结
    POJ 2566 Bound Found
    POJ 1639度限制生成树
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9091060.html
Copyright © 2011-2022 走看看