awk

作者: Nicoveu | 来源:发表于2020-09-14 20:32 被阅读0次

    学习自:http://www.zsythink.net/archives/tag/awk/page/2/

    输入分隔符-F

    或-v指定输入分隔符

    awk  -F#  '{print $1, $2}'  test.txt

    或者awk -v FS='#' '{print $1, $2}' test.txt

    -v指定输出分隔符

    awk -v OFS='+++' '{print $1, $2}' test.txt

    同时指定

    awk -v FS= '&' -v OFS='+++' '{print $1, $2}' test.txt

    NR表示每一行的行号,NF表示每一行有几列

    awk '{print NR, NF}' test.txt

    行号加整行内容

    awk '{print NR, $0}' test.txt

    模式匹配

    打印列数为5的行

    awk 'NF=5 {print $0}' test.txt

    打印第二列为4的行

    ll | awk '$2==4 {print}'

    指定行

    awk -v line=1 '{print $0}' test.txt

    正则表达式

    打印文件中所有以zsy开头的行

    awk '/^zsy/{print $0}' test.txt

    匹配的字符串中字母e最少连续出现两次,最多连续出现4次的行

    awk --posix '/he{2,4}y/{print $0}' test.txt

    或 awk --re-interval '/he{2,4}y/{print $0}' test.txt

    动作

    awk '{print $1; print $2}' test.txt

    条件判断语句(里面的大括号可以省略)

    awk '{if(NR ==1 ){print NR,"系统"} else{print NR, "普通"}}' test.txt

    awk '{if(NR ==1 ) print $0 }' test.txt

    kubectl get po --all-namespaces |grep $service |awk '/$service/{print $2}'

    kubectl get po --all-namespaces |awk '/$service/{print $2}'

    选择以若干个空格开头,并紧跟着Image的行

    awk '/^[[:space:]]+Image/{print $0}'

    相关文章

      网友评论

          本文标题:awk

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