Perl 从文本文件中删除%symbol
我正在尝试删除一些以%symbol开头的内容。输入将是这样的Perl 从文本文件中删除%symbol,perl,Perl,我正在尝试删除一些以%symbol开头的内容。输入将是这样的 %abc %bbc 我写的剧本如下: my $lineno=1; while ($chapline =~ m/\%(.*?)$/msg) { $chapline =~ s/\%(.*?)$/&del;/g; } $chapline =~ s/&del;//g; 但它正在从第一个%符号提取整个文件 在这方面给予帮助 我使用了下面的答案。但是我得到了更多的空格,我无法删除这些空格。如果您试图删
%abc
%bbc
我写的剧本如下:
my $lineno=1;
while ($chapline =~ m/\%(.*?)$/msg)
{
$chapline =~ s/\%(.*?)$/&del;/g;
}
$chapline =~ s/&del;//g;
但它正在从第一个%符号提取整个文件
在这方面给予帮助
我使用了下面的答案。但是我得到了更多的空格,我无法删除这些空格。如果您试图删除以百分号开头的行,只需删除即可
use strict;
my $text = <<YOURTEXT;
%abc
%bbc
ccc
YOURTEXT
$text =~ s/\%(?:.*?\n)//xmg; # \r\n or \n depends on OS
print $text;
perl -ne 'print unless /^%/' input > output
您可以使用正则表达式,但如果您只想不打印任何内容,那么就没有意义了
我不知道为什么要插入和删除&del;字符串,但它是完全冗余的
您可以使用在位编辑开关编辑文件,这将是
perl -i -ne ' ... ' input
或者有备份
perl -i.bak -ne ' ... ' input
大多数情况下,我更喜欢shell重定向,因为这样更安全。您是要删除整行还是只删除百分号?插入和删除&del;字符串?你能告诉我替换中的x是什么吗?使用这个后,有更多的额外行,但我尝试替换。它不起作用。有人能帮忙吗me@vara是的,我已经回答了。不知道你为什么忽视我的回答。
perl -i.bak -ne ' ... ' input