1.gsub
要在整個記錄中替換乙個字串為另乙個,使用正規表示式格式,/目標模式/,替換模式
/。例如改變學生序號4842到4899:
$ awk 'gsub('4842/, 4899) ' grade.txt
j.troll 07/99 4899 brown-3 12 26 26
2.index
查詢字串s中t出現的第一位置。必須用雙引號將字串括起來。例如返回目標字串
bunny中ny出現的第一位置,即字元個數。
$ awk 'begin grade.txt
43.length
返回所需字串長度,例如檢驗字串j.troll返回名字及其長度,即人名構成的字元個
數。$ awk '$1=="j.troll" ' grade.txt
7 j.troll
還有一種方法,這裡字串加雙引號。
$ awk 'begin '
144.match
match測試目標字串是否包含查詢字元的一部分。可以對查詢部分使用正規表示式,返
回值為成功出現的字元排列數。如果未找到,返回0,第乙個例子在ancd中查詢d。因其不
存在,所以返回0。第二個例子在ancd中查詢d。因其存在,所以返回ancd中d出現的首位
置字元數。第三個例子在學生j.lulu中查詢u。
$ awk ''
0$ awk ''
3$ awk '$1=="j.lulu" grade.txt
45.split
使用split返回字串陣列元素個數。工作方式如下:如果有一字串,包含一指定分隔
符-,例如ad2-kp9-ju2-lp-1,將之劃分成乙個陣列。使用split,指定分隔符及陣列名。此
例中,命令格式為("ad2-kp9-ju2-lp-1",parts_array,"-"),split然後返回陣列下標數,這
裡結果為4。
還有乙個例子使用不同的分隔符。
$ awk ''
3這個例子中,split返回陣列myarray的下標數。陣列myarray取值如下:
myarray[1]="123"
myarray[2]="456"
myarray[3]="789"
6.sub
使用sub發現並替換模式的第一次出現位置。字串str包含『popedpopopill』,執行下
列sub命令sub(/op/,"op",str)。模式op第一次出現時,進行替換操作,返回結果如下:
『popedpopepill』。
假如grade.txt檔案中,學生j.troll的記錄有兩個值一樣,「目前級別分」與「最高端別分」。只
改變第乙個為29,第二個仍為24不動,操作命令為sub(/26/,"29",$0),只替換第乙個出現
24的位置。
$ awk '$1=="j.troll" sub(/26/, "29", $0)' grade.txt
l.troll 07/99 4842 brown-3 12 29 26
l.transley 05/99 4712 brown-2 12 30 28
7.substr
substr是乙個很有用的函式。它按照起始位置及長度返回字串的一部分。例子如下:
$ awk '$1=="l.transley" ' grade.txt
l.tan
上面例子中,指定在域1的第乙個字元開始,返回其前面5個字元。
如果給定長度值遠大於字串長度, awk將從起始位置返回所有字元,要抽取l.tansley的姓,只需從第3個字元開始返回長度為7。可以輸入長度99,awk返回結果相同。
$ awk '' grade.txt
transley
substr的另一種形式是返回字串字尾或指定位置後面字元。這裡需要給出指定字串及其返回字串的起始位置。例如,從文字檔案中抽取姓氏,需操作域1,並從第三個字元開始:
$ awk '' grade.txt
troll
transley
還有乙個例子,在begin部分定義字串,在end部分返回從第t個字元開始抽取的子串。
$ awk ' end '
8設定檔名為一變數,管道輸出到awk,返回不帶副檔名的檔名。
$ str="mydoc.txt"
$ echo $str | awk ''
mydoc
設定檔名為一變數,管道輸出到awk,只返回其副檔名。
$ str="mydoc.txt"
$ echo $str | awk ''
txt
Python內建函式列表
函式 點選可跳轉示例 用途abs 返回數字絕對值 all 判斷給定的可迭代引數 iterable 中的所有元素是否都為 true,如果是返回 true,否則返回 false any 判斷給定的可迭代引數 iterable 是否全部為 false,則返回 false,如果有乙個為 true,則返回 t...
awk內建函式
awk的內建函式split允許把乙個字串分隔為單詞並儲存在陣列中。可以自己定義域分隔符或者使用現在fs 域分隔符 的值。split string,array,field separator split string,array 如果第三個引數沒有提供,awk就預設使用當前fs值。time 12 34...
AWK學習筆記八 AWK內建函式
執行作業系統命令然後返回給awk函式,system函式執行string指定的命令,返回執行命令返回的狀態作為它的值。比如下面 段 end系統管理員在awk程式完成處理輸入之後,會傳送email。awk程式被廣泛用來處理含有時間戳的log檔案,表明什麼時候乙個log記錄被寫入。systime 這個函式...