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