Linux awk學習筆記

2021-07-06 09:54:29 字數 1846 閱讀 5411

今天從linux學習開始,沒有什麼規劃,就簡單記下筆記。

-f 「」:用來設定處理文字時的域分隔符 預設是空格和tab

例:awk -f 「:」 『』 /etc/passwd

-v var:用來設定要傳入指令碼的變數,乙個變數前乙個-v

例:awk -v var1=1 -v var2=2 『』 /etc/passwd

/正規表示式/

限定行:如.』nr<=2』輸出前兩行

begin:不進行記錄匹配和處理,一般用來定義變數還有列印輸入內容的開頭,如列名

end:匹配並處理結束後,當前匹配的行是最後一行,可以用來列印最後一行』end』,輸出統計等資訊

定義變數:var=121;

列印內容:print printf

內建函式:split()

控制語句:if while

「+ - * / % = ^」

「< >= <= !=」

&& || !

空格,可以用來連線字串

用來在記錄或域進行匹配正規表示式

例.awk 『$1~/^root/』 /etc/passwd

跟c基本一致

1. if( ){}

else if( )

else

2. while( )

3. special for迴圈用於讀取關聯陣列中的元素。格式如下:

}

sub函式,乙個引數為正規表示式,第二個引數為用來替換的字串,第三個引數可選,用來指定要替換的域如$1,只替換匹配到的乙個內容

sub (regular expression, substitution string, target string)

gsub函式,同sub功能,替換所有匹配到的內容

gsub (regular expression, substitution string, target string)

index函式返回子字串第一次被匹配的位置,偏移量從位置1開始。格式如下:

index(string, substring)

length函式,返回字串長度

length(srting) 返回指定字串長度

length 返回記錄的長度

substr函式返回從位置1開始的子字串,如果指定長度超過實際長度,就返回整個字串。格式如下:

substr( string, starting position, length of string )

split函式可按給定的分隔符把字串分割為乙個陣列。如果分隔符沒提供,則按當前fs值進行分割。格式如下:

split( string, array, field separator )

int(x)取整,不捨入

sqrt(x)平方根

rand()產生乙個0 1之間的隨機數

在awk中還可自定義函式,格式如下:

function name ( parameter, parameter, parameter, … )

systime() 秒單位,從1970.1.1開始

strftime函式使用c庫中的strftime函式格式化時間。格式如下:

systime( [format specification][,timestamp] )

2015.10.29亂七八糟的,以後有機會學一下markdown!

2015.11.4 重新編輯了一下

linux awk學習筆記

最近新增了幾個功能的日誌,但是呢,這個日誌就是輸出,一般自己也發現不了問題,於是想寫一些簡單的監控指令碼來看看日誌的大致情況,比如有沒有error,每天有多少error報出來。想到了以前運維的同時分享awk,於是想簡單的學習下。入門最簡單的輸入某些列 使用 4 這種來表示 0 是輸出整列 root ...

linux awk學習筆記

awk awk的最基本功能是在檔案或者字串中基於指定規則瀏覽和抽取資訊,awk抽取資訊後,才能進行其他檔案操作。完整的awk指令碼通常用來格式化文字檔案中的資訊。通常,awk是以檔案的一行為處理單位的。awk每接收檔案的一行,再執行相應的命令,來處理文字。1.命令列方式 awk f field se...

Linux awk 命令學習筆記

創始人 alfred aho,peter weinberger,和 brian kernighan 語法 awk options script var value file s awk options f scriptfile var value file s options常用引數說明 示例1,單...