首页 > 解决方案 > 如何转义 AWK 中的所有非字母数字字符?

问题描述

我继承了一个与 .csv 文件匹配的非常大的 AWK 脚本,但我发现它与某些字母数字字符不匹配,尤其是+ ( ).

虽然我意识到这在 sed 中很容易:

sed 's/\([^A-z0-9]\)/\\\1/g'

我似乎找不到在 AWK 中以相同方式调用匹配字符的方法。

例如,示例输入是:

select.awk 'Patient data +(B/U)'

我想转义非字母数字字符,并将该行变成:

Patient\ data\ \+\(B\/U\)

我看到有些人也传递了非常晦涩的非字母数字字符,我想转义。

标签: stringawkescaping

解决方案


gsub(/[^[:alnum:]]/, "\\\\&", arg)

推荐阅读