私の友人は、あなたがそうするなら:
perl -pi.bak -e 's/foo/bar/' somefile
「somefile」が実際にシンボリックリンクである場合、perlはドキュメントが行うと言っていることを実行します。
入力ファイルの名前を変更し、元の名前で出力ファイルを開き、その出力ファイルをprint()ステートメントのデフォルトとして選択することにより、これを行います。拡張子が指定されている場合、その拡張子を使用して、古いファイルの名前を変更し、バックアップコピーを作成します[...]
これにより、変更されていない実ファイルを指す新しいシンボリックリンク "somefile.bak"と、変更された新しい変更された通常ファイル "somefile"が作成されます。
多くの場合、シンボリックリンクをたどるのは望ましい動作です(たとえ.bakファイルの正しい場所があいまいなままであっても)。ラッパー内のシンボリックリンクをテストし、適切にケースを処理する以外に、これを行う簡単な方法はありますか?
(sed
それが価値があることのために、同じことをします。)
-p -i
スクリプトで再実装することだと思います。