使用 awk 查找 txt 文件中的特殊字符

使用 awk 查找 txt 文件中的特殊字符

我需要扫描包含许多不同特殊字符和值的文件。给定一组特殊字符 - 我需要提供其旁边的值:

547 %$ 
236 \"
4523 &* 
8876 (*
8756 "/
...

我正在使用带有 gsub 的 awk 命令来查找原来的序列。

awk -v st="$match_string" 'BEGIN {gsub(/(\[|\]|\-|\$|\*|\:|\+|\"|\(|\))/,"\\\\&", st)} match($0,st) {print;exit}' file.txt

该命令效果很好,例如

> (*
>> 8876 (*

但是,我在使用命令定位 \" 序列时遇到了麻烦,我试图将不同的字符串添加到 gsub 中以表示该序列:

|\\|
|\\\\|
|\\\\"|
...

但结果总是:

> \"
>> 8756 "/

看来 gsub 不起作用,并且 \" 被解释为“有什么想法吗?

相关内容