1

% 記号で始まるコンテンツを削除しようとしています。入力はこのようになります。

%abc
%bbc

以下のようなスクリプトを書きました。

my $lineno=1;

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

しかし、最初の % 記号からファイル全体を抽出しています

pl。この点で助けて

私は以下から答えを得たものを使用しました。しかし、私はより多くのスペースを取得しており、それらのスペースを削除できません

4

2 に答える 2

2

パーセント記号で始まる行を削除しようとしている場合は、単に

perl -ne 'print unless /^%/' input > output

正規表現を使用することはできますが、何も出力しないだけであれば、実際には意味がありません。

&del; を挿入したり削除したりする理由がわかりません。文字列ですが、完全に冗長です。

インプレース編集スイッチを使用してファイルを編集できます。

perl -i -ne ' ... ' input

またはバックアップあり

perl -i.bak -ne ' ... ' input

ほとんどの場合、より安全なシェル リダイレクトを好みます。

于 2012-08-06T13:34:08.967 に答える
0
use strict;

my $text = <<YOURTEXT;
%abc
%bbc
ccc
YOURTEXT

$text =~ s/\%(?:.*?\n)//xmg; # \r\n or \n depends on OS
print $text;

出力

ccc
于 2012-08-06T12:54:26.830 に答える