awk中的间隔正则表达式无法按预期工作

时间:2016-03-27 04:19:30

标签: regex awk

我有一堆用逗号分隔的字段的文件,我在redhat linux上。我正在执行以下awk命令:

^BACKTR("INDX","COMPANY",

regxp的^BACKTR("INDX","COMPANY",1,63572,9792) = ""部分应仅匹配 awk --re-interval -F "," '$4~/xyz:8080\/proxyval\/getPages.do\?fd=1d[0-9]{1}/ { print }' * 204:1,204,null,xyz:8080/proxyval/getPages.do?fd=1d7d7 ----> dont expect to see this 204:1,204,null,xyz:8080/proxyval/getPages.do?fd=1d8 204:1,204,null,xyz:8080/proxyval/getPages.do?fd=1d8d8 ----> dont expect to see this 204:1,204,null,xyz:8080/proxyval/getPages.do?fd=1d3 fd=1d[0-9]{1},但它似乎也匹配fd=1d8和'fd = 1d8d8'。请告诉我如果我在这里遗漏了一些东西。

提前致谢 此致

1 个答案:

答案 0 :(得分:1)

Regexp匹配查找子字符串,而不是整个字符串;要找到完全匹配,您必须锚定字符串的开头(^)和结束($)。 [0-9]{1}相当于[0-9]09中的一个字符。)

即。 fd=1d[0-9]{1}会找到blahfd=1d8732,匹配区域为fd=1d8; ^fd=1d[0-9]$与之匹配,但会匹配fd=1d8