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
  • 相关阅读:
    实验一 开发环境的熟悉(小组)
    第六章家庭作业
    Linux常用命令-1
    Linux简介
    Python for写死循环?
    python将某个列表按元素值分成多个子列表
    xshell 5连接NAT模式的虚拟机
    python中remove的一些坑
    Sender IP字段为"0.0.0.0"的ARP请求报文
    免费ARP
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/15760644.html
Copyright © 2011-2022 走看看