Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 从文本文件中删除%symbol_Perl - Fatal编程技术网

Perl 从文本文件中删除%symbol

Perl 从文本文件中删除%symbol,perl,Perl,我正在尝试删除一些以%symbol开头的内容。输入将是这样的 %abc %bbc 我写的剧本如下: my $lineno=1; while ($chapline =~ m/\%(.*?)$/msg) { $chapline =~ s/\%(.*?)$/&del;/g; } $chapline =~ s/&del;//g; 但它正在从第一个%符号提取整个文件 在这方面给予帮助 我使用了下面的答案。但是我得到了更多的空格,我无法删除这些空格。如果您试图删

我正在尝试删除一些以%symbol开头的内容。输入将是这样的

%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