【发布时间】:2016-07-28 13:08:37
【问题描述】:
我正在尝试使用我的 perl 脚本中的一个衬里从文件 list.txt 中删除字符串 @my.mail.com。 (Perl 脚本从 windows server 启动)
r12355 test@my.mail.com
r29555 test@my.mail.com
r29555 trial@my.mail.com
@my.mail.com
r295721 xxx@my.mail.com
r295722 yyyy@my.mail.com
@my.mail.com
r295140 test@my.mail.com
r295145 test@my.mail.com
@my.mail.com
以下是我在 perl 脚本中调用时尝试过的选项:
`perl -pi.bak -e 's/\s+\@my\.mail\.com\s+//g;' D:\\myfolder\\list.txt`;
system("perl -pi.bak -e 's/\s+\@my\.mail\.com\s+//g;' D:\\myfolder\\list.txt");
system( q( perl -l -pi.bak -e 's/\s+\@my\.mail\.com\s+//g;' D:\\myfolder\\list.txt ) );
我期待这样的结果
r12355 test@my.mail.com
r29555 test@my.mail.com
r29555 trial@my.mail.com
r295721 xxx@my.mail.com
r295722 yyyy@my.mail.com
r295140 test@my.mail.com
r295145 test@my.mail.com
不确定如果我遗漏了一些愚蠢的东西,任何输入都非常感谢。提前致谢!
【问题讨论】:
-
我可以建议:不能。随便写点perl,不要用perl来启动perl
-
第二个和第三个例子有“mgd”而不是“my”。另外我认为您可能需要在第一个和第二个示例中使用
\\\@my,因为双插值(反引号/引号和s///) -
@Markus Laire:对不起,编辑了问题。TYPO
-
如果你的文件需要简单的操作,可以使用vim之类的文本编辑器来做这样的操作。
标签: perl