在awk
中,有没有办法匹配包含正斜杠/
的模式而不实际转义它?
awk '$1~/pattern/' file
只要模式中没有/
,上述命令就可以正常工作。
我正在寻找类似于sed
中可用的内容,以便在搜索和替换语法时使用不同的分隔符。
任何帮助都将不胜感激。
答案 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
答案 2 :(得分:1)
这对你好吗?
kent$ echo "///aaa"|awk '/[/]/'
///aaa