zoukankan      html  css  js  c++  java
  • linux 系统中awk 字符串处理函数

    1、sub、gsub

    root@DESKTOP-1N42TVH:/home/test# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test# cat test.txt  ## 测试数据
    a 3 3
    s 1 j
    z c m
    q e i
    3 4 k
    h f 3
    root@DESKTOP-1N42TVH:/home/test# awk '{sub(3,"xxx"); print $0}' test.txt    ## sub替换第一个匹配的字符
    a xxx 3
    s 1 j
    z c m
    q e i
    xxx 4 k
    h f xxx
    root@DESKTOP-1N42TVH:/home/test# awk '{gsub(3,"xxx"); print $0}' test.txt  ## gsub替换所有匹配的字符
    a xxx xxx
    s 1 j
    z c m
    q e i
    xxx 4 k
    h f xxx

    2、length

    root@DESKTOP-1N42TVH:/home/test# cat test.txt
    a 3 3 a 3 3
    s 1 j s 1 j
    z c sm z c m
    q e i388 q e i
    3 4 k33 3 4 k
    h f 3 h f 3
    root@DESKTOP-1N42TVH:/home/test# awk '{print length($0)}' test.txt
    11
    11
    12
    14
    13
    11
    root@DESKTOP-1N42TVH:/home/test# awk '{print length($3)}' test.txt
    1
    1
    2
    4
    3
    1
    root@DESKTOP-1N42TVH:/home/test# awk 'length($3) == 3' test.txt
    3 4 k33 3 4 k

    3、index / match

    root@DESKTOP-1N42TVH:/home/test# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test# cat test.txt
    a 3 3 a 3 3
    s 1 j s 1 j
    z c sm z c m
    q e i388 q e i
    3 4 k33 3 4 k
    h f 3 h f 3
    root@DESKTOP-1N42TVH:/home/test# awk '{print match($0, "j")}' test.txt
    0
    5
    0
    0
    0
    0
    root@DESKTOP-1N42TVH:/home/test# awk '{print index($0, "j")}' test.txt
    0
    5
    0
    0
    0
    0

    4、substr

    root@DESKTOP-1N42TVH:/home/test# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test# cat test.txt
    a 3 3 a 3 3
    s 1 j s 1 j
    z c sm z c m
    q e i388 q e i
    3 4 k33 3 4 k
    h f 3 h f 3
    root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 1, 3)}' test.txt
    3
    j
    sm
    i38
    k33
    3
    root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 1, 2)}' test.txt
    3
    j
    sm
    i3
    k3
    3
    root@DESKTOP-1N42TVH:/home/test# awk '{print substr($3, 2)}' test.txt
    
    
    m
    388
    33

    5、split

    root@DESKTOP-1N42TVH:/home/test# ls
    test.txt
    root@DESKTOP-1N42TVH:/home/test# cat test.txt
    test3_1_clean.fq.gz test3_2_clean.fq.gz
    test4_1_clean.fq.gz test4_2_clean.fq.gz
    test5_1_clean.fq.gz test5_2_clean.fq.gz
    root@DESKTOP-1N42TVH:/home/test# awk '{split($1, x, "_"); print x[1], x[2], $0}' test.txt
    test3 1 test3_1_clean.fq.gz test3_2_clean.fq.gz
    test4 1 test4_1_clean.fq.gz test4_2_clean.fq.gz
    test5 1 test5_1_clean.fq.gz test5_2_clean.fq.gz
  • 相关阅读:
    python学习笔记(33)pycharm中使用git
    VUE基础3-过滤器与生命周期
    VUE基础2-双向数据绑定
    VUE基础1方法与指令
    HTML基础之JS
    HTML基础之DOM操作
    HTML基础之CSS
    HTML基础之HTML标签
    python学习笔记(32)多线程&多进程
    python学习笔记(30)深拷贝、浅拷贝
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/15760644.html
Copyright © 2011-2022 走看看