1

以下の例を使用して、「\n\nbeer/name:」を「|」に置き換えようとしています。キャラクター:

beer/name: The Horseman's Ale
beer/beerId: 33061
beer/brewerId: 14359
beer/ABV: 5.20

beer/name: blah beer
beer/beerId: 33045
beer/brewerId: 14678
beer/ABV: 5.98

...

これを行うために次を使用していますが、ファイル全体を削除しています。

perl -pi -0 -w -e "s,\nbeer/name,|,g" file.txt

これが私が得るエラーです:

Substitution loop at -e line 1, <> chunk 1.

このコードを変更して機能させるにはどうすればよいですか?

4

2 に答える 2

0

これはあなたの質問には答えませんが、作業ファイルを保存するのに役立ちます。

ファイルが「削除/クリア」されるのを防ぐために、-iスイッチにバックアップサフィックスを追加できます。これにより、元のファイルが指定された拡張子で保存されます。

からperlrun

-i[拡張子]

<> コンストラクトによって処理されるファイルをその場で編集することを指定します。これは、入力ファイルの名前を変更し、元の名前で出力ファイルを開き、その出力ファイルを print() ステートメントのデフォルトとして選択することによって行われます。拡張子が指定されている場合は、古いファイルの名前を変更してバックアップ コピーを作成するために使用されます。次の規則に従います。 ...

于 2013-10-27T16:16:51.487 に答える