awk入门

cat file
ll 1045670921 90 87 89
kk 1221313123 90 90 90
hh 1212121212 60 60 60
jj 1212121232 59 58 57
aa 1212123323 12 34 24

ifconfig eth0 | grep 't a' | awk -F'[: ]+' '{print $4}'

'[: ]+' 表示以单个或连续的冒号或空格或冒号空格组合作为分隔符

sed -ir 's/::*/ /g' file

cat file | awk '{print $1"+"$2}'

cat file | awk '{print NF}'   # number of field cat file | awk '{print $NF}'

cat file | awk '{print $(NF-1)}'  #取倒数第二列

awk '{print NR}' file file1 awk '{print FNR}' file file1   # 相对行数

awk  'NR==FNR{print $0}' file file1 awk  'NR!=FNR{print $0}' file file1 cat file | awk 'NR>1&&NR<4{print $0}'

cat file | awk 'NR==3{print $0}'  # 输出第三行 cat file | awk 'NR==3{print $1}'  # 输出第三行第一列

cat file|awk '{a=0}a{print $1}' cat file|awk '{a=1}a{print $1}'

cat file|awk 'NR==1{print $1}NR==2{print $2}' #输出第一行第一列和第二行第二列

cat file|awk 'BEGIN{print "========Grade======"}{print $0}END{print "-----Tail-----"}'

awk 'pattern1{action1}pattern2{action2}...'

cat file|awk '{print $0,$3+$4+$5,($3+$4+$5)/3}'  #计算总和与平均数

cat file|awk '{a=$3+$4+$5;print $0,a,a/3}'

awk计算:

cat 10.txt|awk '{a+=$1}END{print a}'

ps aux|grep sbin|awk '{a+=$3}END{print a}'  #将第三列的值累加到a上

cat file|awk '{if($3>=80){print $0}}'

ll|awk '/^-/{if($5>24){print $0}}'

cat file|awk '{if(NR==1){print $0}}' 等价于 cat file|awk 'NR==1{print $0}'

cat file|awk -va=$a '{print a}'

#for循环 cat file|awk '{for(i=1;i<NF;i++){print $i}}'

#读取奇数行 cat file|awk '{for(i=1;i<=NF;i+=2){printf $i" "}{print xxoo}}' 等价于 cat file|awk '{for(i=1;i<=NF;i+=2){printf $i" "}{printf " "}}'

cat file|awk '{if($1=="ll"){print $0}else{$1="ll";print $0}}'

awk 'BEGIN{while("who"|getline)n++;print n}' 等价于 who|awk '{a++}END{print a}'

who|awk '{a++}END{print a}' > xxx.txt

# sed取IP ifconfig eth0|grep 't a'|sed -n 's/^.*r:(.*) Bc.*$/1/p'

cat file|awk '$3~/90/{print $0}'

cat file|awk '/^ll/||$3~/60/{print $0}'

cat file|awk '/^ll/' 等价于 cat file|awk '/^ll/{print $0}'

cat file|awk '{OFS=":"}{print $1,$2}'

#统计单词数 cat file|awk '{for(i=1;i<=NF;i++){n++}}END{print n}'

#统计行数 cat file|awk 'END{print NR}'

#统计单词'60'个数 cat file|awk '{for(i=1;i<=NF;i++){if($i==60){n++}}}END{print n}'

df -hi|awk -F'[ %]+' '//dev/sda3/{print $5}'

df -h|sed '1d'|awk -F'[ %]+' '{a+=$5}END{print a}'

输出文件除了最后n行的全部内容

head -n -4 file

awk '1' file

cat file|awk '{$1="lx"}1' 等价于 cat file|awk '{$1="lx"}1{print $0}'

取IP ifconfig eth0|awk -F'[: ]+' '/t a/{print $4}'

cat file|awk '{if($3<60){print $0}}'

计算字段和 ps aux|awk '//sbin/{a+=$3;b+=$4}END{print "CPU:"a" MEM:"b}'

原文地址:https://www.cnblogs.com/datapool/p/6337445.html