对包含非渲染字符的字符串运行 grep

对包含非渲染字符的字符串运行 grep

所以我有一个 log.txt 文件,我可以在 Windows 上的 Notepad++ 中搜索它,但是由于它们的数量庞大,我希望能够对它们运行 grep 。但是,数据采用非渲染字符进行格式化,我不知道如何将其包含在 grep 中。 Notepad++ 将它们显示为黑色 RS。数据的格式类似于[RS]value1[RS]value2,我需要能够 grep 查找 value1 和 value2。此格式在这些文件中始终保持不变。

我怎样才能让 grep 搜索这个?我可以使用某种形式的转义序列吗?或者我应该让它搜索value1value2完全忽略这个非渲染字符的存在?

答案1

您的 [RS] =记录分隔符[1]记录分隔符字符 ASCII 30 0x1E

您可以使用这些知识来grep进行(如评论中所建议的),或者如果您想要更通用,则可以使用类似或 的$'\x1e'字符类来匹配它。[^[:print:]][[:cntrl:]]

相关内容