awk pattern# $0變數是指整條記錄,$1表示當前行的第乙個域,$2表示當前行的第二個域,$n當前記錄的第n個域,欄位間由fs分隔, 每行按 fs 字段分隔符(預設是空格或tab)
# cat 1.txt
beth 4.00 0
dan 3.75 0
kathy 4.00 10
mark 5.00 20
mary 5.50 22
susie 4.25 18
# 輸出文字中的1、3列
awk '』 1.txt
beth 0
dan 0
kathy 10
mark 20
mary 22
susie 18
# $nf是number finally,表示最後一列的資訊
awk '' 1.txt00
1020
2218
# 篩選 第三列等於0的第一列的值
awk '$3 == 0 ' 1.txt
beth
dan# -f 指定輸入檔案折分隔符
cat 2.txt
# 2.txt
beth:4.00:0
awk -f ':' '' 2.txt
4.00
# 列印出每行的行號nr代表行號
awk '' 1.txt
我是行號 1 beth 4.00 0
我是行號 2 dan 3.75 0
我是行號 3 kathy 4.00 10
我是行號 4 mark 5.00 20
我是行號 5 mary 5.50 22
我是行號 6 susie 4.25 18
# begin 和 end
# begin 用於匹配第乙個輸入檔案的第一行之前的位置, end 則用於匹配處理過的最後乙個文# 件的最後一行之後的位置
awk 'begin ' 1.txt
標題一標題二 標題三
-------------------
beth 4.00 0
dan 3.75 0
kathy 4.00 10
mark 5.00 20
mary 5.50 22
susie 4.25 18
# 列印最後一行 等同於 tail -n 1 1.txt 等同於 sed -n '$p' 1.txt
awk 'end ' 1.txt
susie 4.25 18
# 設定變數
awk ' ' 1.txt
beth~~~~~
dan~~~~~
kathy~~~~~
mark~~~~~
mary~~~~~
susie~~~~~
# for迴圈 每行列印2遍
awk '' 1.txt
beth 4.00 0
beth 4.00 0
dan 3.75 0
dan 3.75 0
kathy 4.00 10
kathy 4.00 10
mark 5.00 20
mark 5.00 20
mary 5.50 22
mary 5.50 22
susie 4.25 18
susie 4.25 18
# 逆序列印
awk 'end' 1.txt
susie 4.25 18
mary 5.50 22
mark 5.00 20
kathy 4.00 10
dan 3.75 0
beth 4.00 0
# 去重複行
awk '!($0 in x)' 1.txt
# 其他:
awk備忘,強大的awk
越來越發現awk的強大,做了實驗,做了總結 備忘!在linux shell中呼叫awk awk x x即為awk命令,命令必須包含在單引號中,至少雙引號都不行 方法一 awk f nr 7,nr 15 方法二 awk nr 7,nr 15 設定awk分隔符 nf 顯示域的個數 不是分隔符數,一般應該...
我的awk常用命令備忘 xargs備忘
kubectl get deployment n coding awk xargs kubectl rollout restart deployment n coding 重啟所有 coding命名空間 deployment 重啟業務deployment指令碼 bin bash user list ...
awk學習筆記
單詞計數 cat filename awk end 排序演算法 bin bash function f while n 1 do f 1 shift done wait 顯示特殊符 var i am a student echo var awk 結果為 am a i student echo var...