我需要扫描包含许多不同特殊字符和值的文件。给定一组特殊字符 - 我需要提供其旁边的值:
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 不起作用,并且 \" 被解释为“有什么想法吗?