• awk内置字符串函数 awk 格式化输出


    i249 ~ # ps -efl|head -1|awk '$2~/S/{print $2}'
    S
    i249 ~ # ps -efl|awk '$2~/S/{print $2}'
    S
    S
    S
    S

    printf

    -                                      左对齐

    Width                                  域的步长,用0表示0步长

    .prec                                  最大字符串长度,或小数点右面的位数

    %c                                     ASCII字符

    %d                                     整型

    %e                                     科学计数法

    %f                                     浮点型

    %g                                     awk决定哪种浮点数转换e或者f

    %o                                     八进制

    %s                                     字符串

    %x                                     十六进制

     例一:

     i161 admin # df -Th|awk '{print $1,$5}'
    Filesystem Avail
    rootfs 23G
    /dev/root 23G
    tmpfs 16G
    rc-svcdir 956K
    cgroup_root 10M
    udev 9.8M
    shm 16G
    /dev/md4 2.5T

    i161 admin # df -Th|awk '{printf "%-15s %-15s ",$1,$5}'
    Filesystem          Avail          
    rootfs                23G            
    /dev/root           23G            
    tmpfs                16G            
    rc-svcdir            956K           
    cgroup_root       10M            
    udev                  9.8M           
    shm                  16G            
    /dev/md4           2.5T

    awk有许多强大的字符串函数

    gsub(r,s)                              在整个$0中,用s代替r

    gsub(r,s,t)                           在整个t中,用s代替r

    index(s,t)                             返回s中字符串t的第一位置

    length(s)                               返回s长度

    match(s,r)                             测试s是否包含匹配r的字符串

    split(s,a,fs)                         使用分隔符fs将字符串s划分为指定序列a

    sprint(fmt,exp)                       输出经过fmt格式化后的exp

    substr(s,p)                            返回字符串s中从p开始的后缀部分

    substr(s,p,n)                         返回字符串s中从p开始的长度为n的后缀部分

    例一:

    [root@localhost shell]# awk -F ":" 'gsub(/502/,213213213) {print$0}' passwd

    test:x:213213213:213213213::/home/test:/bin/bash

    [root@localhost shell]#

    例二:

    [root@localhost shell]# awk -F ":" 'gsub(/502/,213213213,$3) {print$0}' passwd

    test x 213213213 502  /home/test /bin/bash

    [root@localhost shell]#

    例三:

    [root@localhost shell]# awk 'BEGIN {print index("test","t")}' passwd

    1

    [root@localhost shell]#

    例四:

    [root@localhost shell]# awk -F ":" '{if($1=="test"){print$0,length($1)}}' passwd

    test:x:502:502::/home/test:/bin/bash 4

    [root@localhost shell]#

    例五:

    [root@localhost shell]# awk -F ":" '{if($1=="test") {print substr($1,1,3)}}' passwd

    tes

    [root@localhost shell]#

    例六:

    [root@localhost shell]# awk 'BEGIN {STR="a few good men"} END{print substr(STR,7)}' passwd

    good men

    [root@localhost shell]#

    例七:

    [root@localhost shell]# STR=test.txt

    [root@localhost shell]# echo $STR

    test.txt

    [root@localhost shell]# echo $STR | awk '{print substr($0,1,4)}'

    test

    [root@localhost shell]# echo $STR | awk '{print substr($0,6)}'

    txt

    基本就是这么一些了。。其实我一直感觉很像C程序…
  • 相关阅读:
    python-pycharm-django
    CSS
    django邮件
    访问user Model的三种方式
    weblogic升级war包(工作备忘)
    RestfulAPI_ 验证 与授权
    Restful API serialize相关
    scripy login captcha
    linux环境设置和核心命令
    java 调用JIRA api接口
  • 原文地址:https://www.cnblogs.com/itcomputer/p/4630851.html
Copyright © 2020-2023  润新知