日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

gawk的使用方法( 六 )


(p37 of 46)
它會在字串 in 里面 , 尋找字串 find 第一次出現(xiàn)的地方 , 傳回值是
字串 find 出現(xiàn)在字串 in 里面的位置 。如果在字串 in 里面找不到字
串 find , 則傳回值為 0 。
例如:
print index("peanut","an")
會印出 3 。length(string)
求出 string 有幾個字元 。
例如:
length("abcde")
是 5 。match(string,regexp)
match 函式會在字串 string 里面 , 尋找符合 regexp 的最長、最靠
左邊的子字串 。傳回值是 regexp 在 string 的開始位置 , 即 index
值 。
match 函式會設定內在變數(shù) RSTART 等於 index , 它也會設定內在變
數(shù) RLENGTH 等於符合的字元個數(shù) 。如果不符合 , 則會設定 RSTART 為
0、RLENGTH 為 -1 。
(p38 of 46)sprintf(format,expression1,...)
舉 printf 類似 , 但是 sprintf 并不印出 , 而是傳回字串 。
例如:
sprintf("pi = %.2f (approx.)",22/7)
傳回的字串為"pi = 3.14 (approx.)"sub(regexp, replacement,target)
在字串 target 里面 , 尋找符合 regexp 的最長、最靠左邊的地方 ,
以字串 replacement 代替最左邊的 regexp 。
例如:
str = "water, water, everywhere"
sub(/at/, "ith",str)
結果字串str會變成
"wither, water, everywhere"gsub(regexp, replacement, target)
gsub 與前面的 sub 類似 。在字串 target 里面 , 尋找符合 regexp 的
所有地方 , 以字串 replacement 代替所有的 regexp 。
例如:
(p39 of 46)
str="water, water, everywhere"
gsub(/at/, "ith",str)
結果字串str會變成
"wither, wither, everywhere"substr(string, start, length)
傳回字串 string 的子字串 , 這個子字串的長度為 length 個字元 ,
從第 start 個位置開始 。
例如:
substr("washington",5,3)
傳回值為"ing"
如果 length 沒有出現(xiàn) , 則傳回的子字串是從第 start 個位置開始
至結束 。
例如:
substr("washington",5)
傳回值為"ington"tolower(string)
將字串string的大寫字母改為小寫字母 。
例如:
tolower("MiXeD cAsE 123")
傳回值為"mixed case 123"toupper(string)
將字串string的小寫字母改為大寫字母 。
例如:
toupper("MiXeD cAsE 123")
傳回值為"MIXED CASE 123"8.3 輸入輸出的內建函式close(filename)
將輸入或輸出的檔案 filename 關閉 。system(command)
此函式允許使用者執(zhí)行作業(yè)系統(tǒng)的指令 , 執(zhí)行完畢後將回到 gawk
程式 。
例如:
BEGIN {system("ls")}
第九章 使用者定義的函式(User-defined Functions)復雜的 gawk 程式常??梢允褂米约憾x的函式來簡化 。呼叫使用
者定義的函式與呼叫內建函式的方法一樣 。9.1 函式定義的格式函式的定義可以放在 gawk 程式的任何地方 。一個使用者定義的函式其格式如下:function name (parameter-list) {
body-of-function
}name 是所定義的函式之名稱 。一個正確的函式名稱可包括一序列的字
母、數(shù)字、下標線 (underscores) , 但是不可用數(shù)字做開頭 。parameter-list 是列出函式的全部引數(shù)(argument) , 各個引數(shù)之
間以逗點隔開 。body-of-function 包含 gawk 的敘述 (statement) 。它是函式定義
里最重要的部份 , 它決定函式實際要做何種事 。9.2 函式定義的例子下面這個例子 , 會將每個記錄的第一個欄位之值的平方與第二個
欄位之值的平方加起來 。{print "sum =",SquareSum($1,$2)}
function SquareSum(x,y) {
sum=x*x y*y
return sum
}
第十章 □例這里將列出 gawk 程式的一些例子 。gawk "{if (NF > max) max = NF}
END {print max}"
此程式會印出所有輸入行之中 , 欄位的最大個數(shù) 。gawk "length($0) > 80"
此程式會印出一行超過 80 個字元的每一行 。此處只有 pattern 被
列出 , action 是采用內定的 print 。gawk "NF > 0"
對於擁有至少一個欄位的所有行 , 此程式皆會印出 。這是一個簡

推薦閱讀