我在一个巨大的日志文件中执行大规模更改时遇到问题。除了导致 Notepad++ 问题的文件大小之外,我在使用超过 10 个参数进行替换时遇到问题,最多 9 个参数可以正常工作。
我需要更改文件中的数值,这些值位于引号内并带有前导和结束逗号:."123,456,789,012.999",
我用这个 exp 查找并将格式替换为:(
,123456789012.999,
这样 num.value 中就没有引号和逗号)
用来查找的exp是:
([,])(["])([0-9]+)([,])([0-9]+)([,])([0-9]+)([,])([0-9]+)([\.])([0-9]+)(["])([,])
替换的 exp 是:
\1\3\5\7\9\10\11\13
问题是参数\11
\13
不起作用(例如.999
示例中的字符不会出现在更改的值中)。
所以现在的问题是 - 参数有限制吗?
在我看来,它不能在 10 以上工作。对于较短的 num.values,我只需要使用最多 9 个参数,用于 serach 和替换的字符串工作正常,对于上面的示例,搜索工作但不是替换,结束更改的值已损坏。
此外,我想到,我可以直接更改 unix 服务器上的日志文件,而不是使用 Notepad++,但是我在构建正确的 perl 语法时遇到了问题。有谁能帮忙吗?