使用awk包含正斜杠的搜索模式

时间:2013-11-05 13:02:36

标签: awk

awk中,有没有办法匹配包含正斜杠/的模式而不实际转义它?

awk '$1~/pattern/' file

只要模式中没有/,上述命令就可以正常工作。

我正在寻找类似于sed中可用的内容,以便在搜索和替换语法时使用不同的分隔符。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:7)

是的,你可以做到

awk '$0~v' v="patt/ern"

说明

N.B。:从评论中提取,所以也支持它们!

awk 动态正则表达式正则表达式常量不完全相同。 OP问题中的例子是正则表达式常量你把它变成动态正则表达式(参见。Using Dynamic Regexps)。

答案 1 :(得分:6)

Debian Mawk要求转义正斜杠,即使在括号内:

$ echo 'alfa / bravo' | awk '/[\/]/'
alfa / bravo

或者您可以改为使用双引号:

$ echo 'alfa / bravo' | awk '$0 ~ "/"'
alfa / bravo

或八进制代码:

$ echo 'alfa / bravo' | awk '/\57/'
alfa / bravo

mawk does not understand unescaped '/' in character classes

答案 2 :(得分:1)

这对你好吗?

kent$ echo "///aaa"|awk '/[/]/'
///aaa