awk

全部操做對development.yamlnode

[root@kube-node3 ~]# cat development.yaml
apiVersion: v1
kind: Namespace
metadata:
name: development
labels:
name: developmentnginx

 

打印硬盤設備名稱,默認以空格分割
df -h | awk '{print $1}'shell


以冒號做爲分割符
awk -F '[:]' '{print $1}' development.yaml   或者   cat /etc/passwd | awk -F: '{print $NF}'api


以空格做爲分隔符
awk -F ' '  '{print $1}' development.yaml   或者   awk   '{print $1}' development.yaml數組


以製表符做爲分隔符
awk -F '[\t]' '{print $1}' development.yaml服務器


以分號做爲分隔符
awk -F '[;]' '{print $1}' development.yamltcp


以冒號爲分割,打印第一列,而後追加到/tmp/log
awk -F: '{print $1>> "/tmp/awk.log"}' development.yamlspa


打印第三行到第五行,NR表示行
awk 'NR==3,NR==5 {print}' development.yaml 日誌

打印文件全部域
awk 'NR==3,NR==5 {print $0}' development.yamlip


打印第三行到第五行的第一列和最後一列
awk -F: 'NR==3,NR==5 {print $1,$NF}' /etc/passwd

打印最後一列

cat /etc/passwd | awk -F ':'  '{print $NF}'   或者  cat /etc/passwd | awk -F: '{print $NF}'


打印字符串長度大於10的行號
awk 'length($0)>10 {print NR}' development.yaml


引用shell變量,使用-v或者雙引號+單引號
awk -v STR=hello '{print STR,$NF}' development.yaml

以冒號爲分隔符,打印第一列同時打印前5行
awk -F: 'NR>=1 && NR<=5 {print $1}' development.yaml
cat /etc/passwd | head -5 | awk -F: '{print $1}' development.yaml


打印第一列和全部行號
awk -F: '{print NR,$1}' development.yaml


NR除以2等於0則跳過該行繼續執行下一行,打印出來
awk -F: 'NR%2==0{next} {print NR,$1}' development.yaml


awk添加自定義字符
ifconfig ens33 | grep broad | awk '{print "ip_"$2}'


awk格式化輸出password內容,printf打印字符串,% 格式化輸出分隔符,s表示字符串類型,-12 表示12個字符,-6表示6個字符
awk -F: '{printf "% - 12s % - 6s % -8s\n", $1,$2,$NF}' /etc/passwd


awk OFS輸出格式化\t
netstat -an | awk '$6 ~ /LISTENING/$$NR>=1&&NR<=10 {print $NR, $4, $5, $6}' 沒作成


awk和if組合使用
echo 3 2 1 | awk '{ if(($1>$2 && $1>$3)) {print $2} else {print $3}}'

awk與數組結合統計passwod文件用戶數
awk -F":" '{print $7}' /etc/passwd | uniq -c


awk分析nginx的日誌狀態碼 404 503 等次數 統計次數大於20的
awk '{if ($9~/502|499|500|503|404/) print $1,$9}' access.log|sort|uniq –c|sort –nr | awk '{if($1>20) print $2}'


awk統計服務器鏈接狀態數
netstat -an | awk '/tcp/{s[$NF]++}END{for(i in s) print s[i] i}'
netstat -an | awk '/tcp/{print $NF}' | sort | uniq


grep -c "404" access.log 統計nginx日誌中404的行數

grep -i "404" access.log 不區分大小寫 查找404所在的行

grep -n "404" access.log 打印404的行以及行號

grep -v "404" access.log 不打印404所在的行

grep "api[Vv]" development.yaml 以字符api開頭,接V或v 的行

grep "^[^api]" development.yaml 顯示輸出不是api的行

grep "[Aa]p" development.yaml 匹配 A或a開頭,後接p的行


awk提取信息並保持到文件
cat /etc/passwd | awk -F: '{ print $1 }' | tail -10 > output.txt && cat output.txt


爲文件的每一行後面添加特定字符串
awk '{print $0" &&"}'


打印第一列到最後一列,默認以空格分割
awk '{for (i=1;i<=NF;i++)printf("%s ", $i);print ""}'

打印第三列到最後一列,默認以空格分割
awk '{for (i=3;i<=NF;i++)printf("%s ", $i);print ""}'

打印第一列至倒數第二列,默認以空格分割
awk '{for (i=1;i<=NF-1;i++)printf("%s ", $i);print ""}'

提取yum的軟件包個數yum repolist | sed -n '/repolist/p' | awk -F ':' '{print $2}'

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息