AWK介绍-5(内置的字符串函数)

来源:互联网 发布:三因子模型数据 编辑:程序博客网 时间:2024/05/16 14:46

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)}'

0 0
原创粉丝点击