
替换字符串,使用正则表达式:/目标模式/,替换模式。
awk 'gsub(/4842/,8888) {print $0}' grade.txt
查询字符串 s 中 t 出现的第一位置。必须用双引号将字符串括起来。awk 指定行例如返回目标字符串Bunny中ny出现的第一位置。
awk 'BEGIN {print index("Bunny","ny")}' grade.txt
返回所需字符串的长度:
![]()
awk '$1=="Jerry" {print length($1)"\n"$1}' grade.txt
//另一种方式,字符串加双引号
awk 'BEGIN {print length("Jerry is a good boy")}'
match测试目标字符串是否包含查找字符的一部分。可以使用正则表达式,返回值为成功的字符排列数,如果未找到返回0
awk 'BEGIN {print match("ABCD",/s/)}'
awk 'BEGIN {print match("ABCD",/B/)}'
awk '$1=="Hello" {print match($1,/0/)}' hello
使用split函数返回字符串数组元素个数,需要指定数组名和分隔符。
awk 'BEGIN {print split("ADC-APC-AP-AD-1",array,"-")}'

使用sub发现并替换模式的第一次出现的位置,
awk '$1=="Jerry" sub(/Jerry/,"JERRY",$0)' hello.txt
//修改并打印修改后的文本
awk '{$1=="Jerry" sub(/26/,30,$0)} END{ print $0}' find.sh
按照起始位置以及长度返回字符串的一部分。如果给定长度远大于字符串长度,awk将从起始位置返回所有字符。
//返回字符串:L.Tan
awk '$1=="L.Tansley" {print substr($1,1,5)}' grade.txt
substr的另一种形式是返回字符串后缀或指定位置后面字符。这里需要给出指定字符串及其返回字串的起始位置。例如,从文本文件中抽取姓氏,需操作域1,并从第三个字符开始:
awk '{print substr($1,3)}' grade.txt
在BEGIN部分定义字符串,在END部分返回从第t个字符开始抽取的子串。awk 指定行
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-81433-1.html
甚至对我们示好
素质