如果發現“虛擬”,想評論那些行,如何撰寫一個 perl 來把 # 如下所示?

uj5u.com熱心網友回復:
您可以在命令列上執行此操作,如下所示:
cat file | perl -nle 'if (/_dummy/) { print "#". $_ } else { print $_ }'
或者,如果您更喜歡腳本檔案(假設以下內容另存為commenter.pl):
#!/usr/bin/env perl
foreach my $line (<>) {
if ($line =~ /dummy/) {
print "#" . $line;
} else {
print $line;
}
}
然后你可以做
cat file | ./commenter.pl
或
./commenter.pl file
uj5u.com熱心網友回復:
好吧,如果您想就地編輯檔案,我還應該給您一個襯里:
$ perl -pi -e 's/^(.*dummy.*)$/# $1/' <file>
-i用于就地編輯-p,執行while (<>).
雖然我喜歡 perl,但對于像就地檔案替換這樣簡單的事情,大多數人會sed改用:
$ sed -i.bak -E "s/^(.*dummy.*)$/# \1/" <file>
(適用于 Linux/BSD/Mac - 只能在 Linux.bak上省略,這顯然不會保存備份)
uj5u.com熱心網友回復:
perl -pe's/^(?=.*dummy)/#/'
要么
perl -pe'print "#" if /dummy/'
指定要處理的檔案到 Perl 單行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/453014.html
