##提取兩個檔案第一列相同的行
awk -f',' 'nr==fnrnr>fnr' 1.log 2.log
awk 'nr==fnrnr>fnr&&a[$1]>1' 111.txt 111.txt
awk 'a[$1]++==1'
cat 111.txt | awk -f '[:|]' '' > 111.txt
##awk 按某個位置的字元分隔的方法
awk -f ":" ''
awk -f':' ''
awk -f':' ''
##awk列印使用者和密碼
cat test.log |awk -f '[ ]+' ''
##排序顯示重複專案
cat test.log |awk -f '[ ]+' ''| sort | uniq -c | sort -nr
#awk -f '\t'來表示分隔符,比如
awk -f '\t' '' file1.txt
##多個空格分隔的方法
awk -f '[ ]+' ''
ls -lh /etc/sysconfig/network-scripts/ifcfg-* | awk -f '[ ]+' ''
##指定分隔符既可以為空格,又可以為冒號,那麼處理將會變得簡單。可以使用正規表示式來指定多個分隔符,格式為 -f'[空格:]+' 如下
awk -f'[ :]+' '' file1.txt
awk '/101/' file # 顯示檔案file中包含101的匹配行。
awk '/101/,/105/' file
awk '$1 == 5' file
awk '$1 == "ct"' file # 注意必須帶雙引號
awk '$1 * $2 >100 ' file
awk '$2 >5 && $2<=15' file
awk '' file # 顯示檔案file的當前記錄號、域數和每一行的第乙個和最後乙個域。
awk '/101/ ' file # 顯示檔案file的匹配行的第
一、二個域加10。
awk '/101/ ' file
awk '/101/ ' file # 顯示檔案file的匹配行的第
一、二個域,但顯示時域中間沒有分隔符。
df | awk '$4>1000000 ' # 通過管道符獲得輸入,如:顯示第4個域滿足條件的行。
awk -f "|" '' file # 按照新的分隔符「|」進行操作。
awk 'begin
' file # 通過設定輸入分隔符(fs="[: \t|]")修改輸入分隔符。
sep="|"
awk -f $sep '' file # 按照環境變數sep的值做為分隔符。
awk -f '[ :\t|]' '' file # 按照正規表示式的值做為分隔符,這裡代表空格、:、tab、|同時做為分隔符。
awk -f '' '' file # 按照正規表示式的值做為分隔符,這裡代表[、]
awk -f awkfile file # 通過檔案awkfile的內容依次進行控制。
cat awkfile
/101/ # 遇到匹配行以後列印 ' hello! '. \047代表單引號。
# 因為沒有模式控制,列印每一行的前兩個域。
awk '$1 ~ /101/ ' file # 顯示檔案中第乙個域匹配101的行(記錄)。
awk 'begin
' file # 通過設定輸出分隔符(ofs="%")修改輸出格式。
awk 'begin # begin 表示在處理任意行之前進行的操作。
' file # 取得檔案第乙個域的最大值。
(表示式1?表示式2:表示式3 相當於:
if (表示式1)
表示式2
else
表示式3
awk '' file
awk '$1 * $2 >100 ' file # 顯示檔案中第乙個域匹配101的行(記錄)。
awk '' file # 找到匹配行後先將第3個域替換後再顯示該行(記錄)。
awk '' file # 將第7域被3除,並將餘數賦給第7域再列印。
awk '/tom/ ' file # 找到匹配行後為變數wage賦值並列印該變數。
awk '/tom/
end ' file # end表示在所有輸入行處理完後進行處理。
awk 'gsub(/\$/,"");gsub(/,/,""); cost+=$4;
end ' file # gsub函式用空串替換$和,再將結果輸出到filename中。
1 2 3 $1,200.00
1 2 3 $2,300.00
1 2 3 $4,000.00
awk '
end "' file
通過if和else if完成條件語句
awk '
end "' file
# 通過exit在某條件時退出,但是仍執行end操作。
awk '
end "' file
# 通過next在某條件時跳過該行,對下一行執行操作。
awk '' file1 file2 file3>fileall # 把file1、file2、file3的檔案內容全部寫到fileall中,格式為 列印檔案並前置檔名。
awk ' $1!=previous ' fileall # 把合併後的檔案重新分拆為3個檔案。並與原檔案一致。
awk 'begin ' # 通過管道把date的執行結果送給getline,並賦給變數d,然後列印。
awk 'begin ' # 通過getline命令互動輸入name,並顯示出來。
awk 'begin }' # 列印/etc/passwd檔案中使用者名稱包含050x_的使用者名稱。
awk '
} } }'
awk常用命令
awk命令詳解 2009年03月31日 星期二 22 22 awk指令詳解 1.命令簡述 awk將每個輸入行識別成一條記錄,而將那一行上的每個單詞域識別成乙個字段 2.命令選項 f 指定分隔符 nf 單行最後乙個分段 nr 行數 等同 and 語句兩邊必須同時匹配為真 等同 or 語句兩邊同時或其中...
awk常用命令
1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第一列 sed n 2,1p filename awk pri...
awk常用命令
awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...