(p37 of 46)
它会在字串 in 里面 , 寻找字串 find 第一次出现的地方 , 传回值是
字串 find 出现在字串 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 函式会设定内在变数 RSTART 等於 index , 它也会设定内在变
数 RLENGTH 等於符合的字元个数 。如果不符合 , 则会设定 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 没有出现 , 则传回的子字串是从第 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)
此函式允许使用者执行作业系统的指令 , 执行完毕後将回到 gawk
程式 。
例如:
BEGIN {system("ls")}
第九章 使用者定义的函式(User-defined Functions)复杂的 gawk 程式常常可以使用自己定义的函式来简化 。呼叫使用
者定义的函式与呼叫内建函式的方法一样 。9.1 函式定义的格式函式的定义可以放在 gawk 程式的任何地方 。一个使用者定义的函式其格式如下:function name (parameter-list) {
body-of-function
}name 是所定义的函式之名称 。一个正确的函式名称可包括一序列的字
母、数字、下标线 (underscores) , 但是不可用数字做开头 。parameter-list 是列出函式的全部引数(argument) , 各个引数之
间以逗点隔开 。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}"
此程式会印出所有输入行之中 , 栏位的最大个数 。gawk "length($0) > 80"
此程式会印出一行超过 80 个字元的每一行 。此处只有 pattern 被
列出 , action 是采用内定的 print 。gawk "NF > 0"
对於拥有至少一个栏位的所有行 , 此程式皆会印出 。这是一个简
推荐阅读
- 8月4日 明基P50初期体验心得汇总2
- 王者嫦娥归月怎么用
- 口令篇 UNIX系统的安全
- 少是上下结构还是独体字 少是的结构
- 指标房和商品房的区别是什么
- 苹果花什么季节开的
- 卡西尼号探测器是探测什么系列天体的
- 12pro max背面是磨砂的吗
- sos求救信号如何在手机中设置
- 帮你做决定具体使用步骤介绍
