【发布时间】:2011-07-29 00:08:20
【问题描述】:
使用awk,我需要在文件中找到与正则表达式模式匹配的单词。
我只想打印与模式匹配的单词。
所以如果排队,我有:
xxx yyy zzz
和模式:
/yyy/
我只想得到:
yyy
编辑: 感谢kurumi,我设法写了这样的东西:
awk '{
for(i=1; i<=NF; i++) {
tmp=match($i, /[0-9]..?.?[^A-Za-z0-9]/)
if(tmp) {
print $i
}
}
}' $1
这正是我所需要的 :) 非常感谢!
【问题讨论】:
-
@maxtaldykin 您能否将问题中的自我回答移到单独的答案中?
-
你不需要做
tmp=match($i, /regexp);if(tmp){},你应该可以做if(tmp ~ $i){},因为~的意思是“匹配正则表达式”。