0

私は現在、自動削除のためにゾーンファイルをソートしています..

perl -i -ne 'print unless (/#$DOMAINNAME/ and \$n=7) .. not \$n--' named.conf.ext

(それが機能するには n をエスケープする必要があります。それ以外の場合は、メイン スクリプトに渡される変数があると考えられますか?)

この呼び出しは perl スクリプト内からのものであり、シェルを呼び出して perl スクリプトから perl を再実行する必要はなく、メイン スクリプトで実行することでクリーンアップしたいと考えています。

あなたがおそらく言うことができるように、ここではperlの専門家ではありません:)私は次のようなことを試しました

open (DATAIN, "<named.conf.ext");
 open (DATAOUT, "> named.conf.tmp");
 while (<DATAIN>){
  PRINT unless (/#foo.com/ and $n=7) .. not $n-- DATAOUT;
 }
 close DATAOUT;
close DATAIN;

およびいくつかのバリアントがありますが、「--DATAOUT」の近くのテスト行 4 で構文エラーを訴えます。

私はこれに夢中になっていると確信しており、答えは目の前にありますが、2日後、脳はどこでキックスタートする必要があると思います.

ありがとう

4

1 に答える 1

3

普通です

print DATAOUT;

の略です

print DATAOUT $_;

あなたが望んでいるのは

print DATAOUT unless (/#foo.com/ and $n=7) .. not $n--;

またはより長い

print DATAOUT $_ unless (/#foo.com/ and $n=7) .. not $n--;
于 2013-05-19T04:43:11.387 に答える