2016 - 2024

感恩一路有你

linux合并多个文件为一个 awk可以捕获并引用正则表达式的分组吗?

浏览量:2214 时间:2021-03-13 22:47:43 作者:admin

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字符串处理函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。