awk

2020-09-14  本文已影响0人  Nicoveu

学习自: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}'

上一篇 下一篇

猜你喜欢

热点阅读