cat file
ll 1045670921 90 87 89kk 1221313123 90 90 90hh 1212121212 60 60 60jj 1212121232 59 58 57aa 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 "\n"}}'
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'[\t %]+' '/\/dev\/sda3/{print $5}'
df -h|sed '1d'|awk -F'[\t %]+' '{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}'