我是 Perl 的新手(因为今天下午出于需要才开始使用它),因为我必须处理一些需要转换为 .sql 的大而繁琐的文本文件。在完成几个基本的正则表达式查找/替换操作后,我使用了以下行:
s/$/');/g;
我最终得到了 300k 多行,如下所示:
');INSERT INTO `test` VALUES('aa1b','MediaWiki1Deletecomment','1',5609');
哎呀。所以应该把 ');
放在每行的末尾,但显然我误解了,它把它卡在了行的开头和结尾。所以有几个问题:
- 我该如何正确地做到这一点?显然我误解了
s/$/');/g;
- 现在我已经在每行开头插入了
');
,如何修复此文件,如何有选择地搜索每一行并删除');
位于行首而不是行尾?
这个 Perl/Regex 菜鸟谢谢你!
最佳答案
删除这些前导字符的最简单命令是使用 .
来匹配任何字符和量词,以在每行开头用单行符重复该字符 3 次:
perl -pe 's/^.{3}//' infile
关于mysql - 仅在行首查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848112/