歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> AWK簡介及使用實例

AWK簡介及使用實例

日期:2017/2/28 14:38:09   编辑:Linux教程

AWK簡介及使用方法

awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本。
awk其名稱得自於它的創始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首個字母。實際上 AWK 的確擁有自己的語言: AWK 程序設計語言 , 三位創建者已將它正式定義為“樣式掃描和處理語言”。
它允許您創建簡短的程序,這些程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表,還有無數其他的功能。
調用AWK的三種方法:
1.命令行方式
awk [-F field-separator] 'commands' input-file(s)
commands 是真正awk命令,[-F域分隔符]是可選的,默認空格。 input-file(s) 是待處理的文件
2.shell腳本方式
將所有的awk命令插入一個文件,並使awk程序可執行,然後awk命令解釋器作為腳本的首行,通過鍵入腳本名稱來調用。
相當於shell腳本首行的:#!/bin/sh換成:#!/bin/awk
3.將所有的awk命令插入一個單獨文件,然後調用:
awk -f awk-script-file input-file(s) --f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。
##################################################################################################

awk內置變量

內置變量用來設置環境信息,這些變量可以被改變,下面給出了最常用的一些變量。
$0變量是指整條記錄。$1表示當前行的第一個域,$2表示當前行的第二個域,......以此類推。
ARGC 命令行參數個數
ARGV 命令行參數排列
ENVIRON 支持隊列中系統環境變量的使用
FILENAME awk浏覽的文件名
FNR 浏覽文件的記錄數
FS 設置輸入域分隔符,等價於命令行 -F選項
NF 浏覽記錄的域的個數
NR 已讀的記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
本篇實驗數據如下: ---從Oracle啟動的ALERT日志中取的一部分
[oracle@bys3 ~]$ cat awktest.log --最後兩行手動增加了:號,方便實驗
MMAN started with pid=9, OS id=22862
DBW0 started with pid=10, OS id=22866
LGWR started with pid=11, OS id=22870
CKPT started with pid=12, OS id=22874
SMON:started with pid=13, OS id=22878
RECO:started with pid=14, OS id=22882

說明---把個人覺得常用的寫了出來,關於AWK每個參數的沒寫,可以看http://www.linuxidc.com/Linux/2013-12/93518.htm

Copyright © Linux教程網 All Rights Reserved