我有一堆用逗号分隔的字段的文件,我在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'。请告诉我如果我在这里遗漏了一些东西。
提前致谢 此致
答案 0 :(得分:1)
Regexp匹配查找子字符串,而不是整个字符串;要找到完全匹配,您必须锚定字符串的开头(^
)和结束($
)。 [0-9]{1}
相当于[0-9]
(0
到9
中的一个字符。)
即。 fd=1d[0-9]{1}
会找到blahfd=1d8732
,匹配区域为fd=1d8
; ^fd=1d[0-9]$
与之匹配,但会匹配fd=1d8
。