gsub(r, s) 在整个$0中用s替代r
gsub(r, s, t) 整整个t中用s替代r
index(s, t) 返回s中字符串t的第一位置
length(s) 返回s长度
match(s, r) 测试s是否包含匹配r的字符串
split(s, a, fs) 在fs上将s分成序列a
sprint(fmt, exp) 返回经fmt格式化后的exp
sub(r, s) 用$0中最左边最长的字串代替s
substr(s, p) 返回字符串s中从p开始的后缀部分
substr(s, p, n) 返回字符串s中从p开始长度为n的后缀部分
gsub
要在整个记录中替换一个字符串为另一个,使用正则表达式,/目标模式/,替换模式/
改变学生序号4842到4899
awk 'gsub(/4842/, 4899) {print $0}' abc.txt
index
查询字符串s中t出现的第一位置,必须用双引号将字符串括起来,返回目标字符串出现的第一位置,即字符个数
awk 'BEGIN {print index("bunny", "ny")}' abx.txt
length
返回字符串的长度
awk ‘$1 == "j.troll" {print length($1)" "$1}' abc.txt
awk 'BEGIN {print length("abc good")}'
match
测试目标字符串时候包办查找字符的一部分
awk 'BEGIN {print match("and", /d/)}'
awk 'BEGIN {print match("ancd", /c/)}'
awk '$1 == "ABC" {print mactch($1, "a")}' abc.txt
split
返回字符串数组的元素个数
awk 'BEGIN {print split("123#456&678", myarray, "#")}'
sub
发现并替换模式的第一次出现的位置
awk '$1 == “troll" sub(/26/, "29", $0)' abc.txt
substr
按照起始位置即长度返回字符串的一部分
awk '$1 == "tansley" {print substr($1, 1, 5)}' abx.txt
从shell中向awk传入字符串
echo "stand-by" |awk '{print length($))}'
STR="mydoc.txt"
echo $STR | awk '{print substr($STR, 1, 5)}'
STR"mydoc.txt"
echo $STR | awk '{print substr($STR, 7)}'