2017-03-11 1 views
0

後に編集するが、私は> fileを入れてみましたファイル1行スクリプトは、私はここに例を得たパターン

perl -lne 'print $_;print "This is Middle" if(/Beginning/);' file 

への出力/印刷を書きませんが、それをすべての空を上書きすることが起こります。

+0

あなたは '>> file'を試しましたか? – TmTron

+0

おかげで。スクリプトの出力でファイル全体を上書きする必要があるからです。 ">> file"は追加します。 – carlregencia

+0

'perl -lpi.bak -e 'を試してくださいprint(これは/ Beginning /);'ファイル 'を生成する。元の 'file'のバックアップファイル' file.bak'を作成し、 'file'を上書きします。 –

答えて

0

ファイルから読み取ることはできません同時に書き込みます。この種のものを処理するための通常の方法では、一時ファイルへの書き込みやアクションの後にそれを元に置き換えるです:

perl -lne 'print $_;print "This is Middle" if(/Beginning/);' file > file.tmp; \ 
mv -f file.tmp file 

See also

+0

$ perl -lne 'print $ _; print "これは中間です"(/ Beginning /);'ファイル> file.tmp; \ mv -f file.tmpファイル> $ catファイル これは始まりです これは中間です これは終了です。 ありがとうございます。これは動作します。参考までもありがとう。 – carlregencia

+0

私はそれが言う十分な評判を持っていないので、私はまだ投票することはできません。 – carlregencia

関連する問題