mur*_*uru 5 awk regular-expression
当与其中的模式匹配时/
,必须/
快速逃脱变得笨拙、丑陋:
/\/usr\/share\/man\//
Run Code Online (Sandbox Code Playgroud)
对于 sed、perl 或 Vim,我会为正则表达式使用不同的分隔符,例如:
:
sed '\:/usr/share/man/: do something'
perl -ne 'print if m:/usr/share/man/:'
:g:/usr/share/man/: do something " Vim
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免这个 awk?就像是:
awk ':/usr/share/man/: {do something}'
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的方法是使用一个变量:
awk -v pat='/usr/share/man/' '$0 ~ pat {do something}'
Run Code Online (Sandbox Code Playgroud)
但这与 sed/perl/vim 方法相比非常冗长。
当然,可能还有其他匹配路径的方法,例如/usr/share/man/
,但这并不是/
模式中可能出现的唯一地方。