linux合并多个文件为一个 awk可以捕获并引用正则表达式的分组吗?
awk可以捕获并引用正则表达式的分组吗?
就是这样。
例如,以下示例myexample.txt文件
123456789-p491666#########执行以下awk命令,自定义内部变量subar捕获完全匹配和子匹配的内容,
################################## myexample.txt文件
太棒了
subar[0]是整条正则表达式(整行)匹配的内容
subar[1]是第一个括号中匹配的内容,即第一个子匹配;
如果正则表达式中有多对括号,相应的下标用于subar变量以获得子匹配;
subar[2]。。。第二个子匹配
subarr[3]第三个子匹配
…
依此类推
当然:
awk内置字符串函数
gsub(R,s)在整个$0中用s代替R
gsub(R,s,t)在整个t中用s代替R
索引(s,t) 返回字符串t在S中的第一个位置
length(S)返回S length
match(S,R)测试S是否包含与R匹配的字符串
拆分(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,并详细说明每个函数的用法。
Gensub(a,B,C[,D])全局替换,匹配常规a,替换为B,C为指定的替换目标是匹配的次数,D为指定的替换目标是哪个字段,如$1,$2,如果没有D表示$0,则返回值为替换后目标的内容(不替换或返回原始)目标内容),不同于sub和gsub,替换后目标内容不变。
Gensub(/123/,“x”,1,$1)用字符x替换$1中第一个匹配的123,返回值是替换$1后的内容,并且$1的内容没有改变
Gensub(/a(*)B/,“1”,1)返回值是第一对匹配规则()中的内容
Gensub(/a(*)B(*)C/,“2”,1)返回值是第二对匹配正则表达式()
linux合并多个文件为一个 awk 正则表达式提取 awk字符串处理函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。