从文本文件中删除%符号

时间:2012-08-06 12:49:12

标签: perl

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

%abc
%bbc

我写了如下脚本:

my $lineno=1;

while ($chapline =~ m/\%(.*?)$/msg)
    {
    $chapline =~ s/\%(.*?)$/&del;/g;
    }
$chapline =~ s/&del;//g;

但它从第一个%符号

中提取整个文件

PL。在这方面提供帮助

我使用的是我从下面得到的答案。但我得到更多的空间,我无法删除这些空格

2 个答案:

答案 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