我正在尝试删除一些以%符号开头的内容。输入将是这样的。
%abc
%bbc
我写了如下脚本:
my $lineno=1;
while ($chapline =~ m/\%(.*?)$/msg)
{
$chapline =~ s/\%(.*?)$/&del;/g;
}
$chapline =~ s/&del;//g;
但它从第一个%符号
中提取整个文件PL。在这方面提供帮助
我使用的是我从下面得到的答案。但我得到更多的空间,我无法删除这些空格
答案 0 :(得分:2)
如果您尝试删除以百分号开头的行,只需执行
即可perl -ne 'print unless /^%/' input > output
你可以使用一个正则表达式,但是没有意义,如果你想要做的就是什么都不打印。
我不知道为什么要插入和删除& del;字符串,但它完全是多余的。
您可以使用就地编辑开关编辑文件,即
perl -i -ne ' ... ' input
或使用备份
perl -i.bak -ne ' ... ' input
大多数时候,我更喜欢shell重定向,因为它更安全。
答案 1 :(得分:0)
use strict;
my $text = <<YOURTEXT;
%abc
%bbc
ccc
YOURTEXT
$text =~ s/\%(?:.*?\n)//xmg; # \r\n or \n depends on OS
print $text;
<强>输出强>
ccc