sed [duplicate]を使用してあるファイルを別のファイルに追加する

sed [duplicate]を使用してあるファイルを別のファイルに追加する

file.bak次のコマンドを使用して追加しようとしましたfile.php

sed r file.php file.bak

必要に応じて正しい出力を提供します。ただし、file.bakに追加して保存しませんfile.php

どうすればいいのかご存知ですか?

ベストアンサー1

これは必要ありませんsed。以下を使用すれば十分ですcat

cat file.bak >>file.php

これで内容がfile.bak最後に追加されますfile.php


プログラムは内容を標準出力に出力しますsedr file.phpfile.php各入力ラインについてfile.bak複数の行がある場合は、複数のfile.php挿入コピーが作成されます。

sedデータを追加するために使用したい場合は、これは望むものではありません。

代わりに、catここがより良いという事実を無視してください

sed '$r file.bak' file.php

file.bak最後の行に達するまで読み込まれませんfile.php。これは両方のファイルの内容を連結する効果があります(最初の内容file.php、次の内容file.bak)。

結果を書き換えるには、file.php出力を新しいファイルにリダイレクトしてから、安全な方法でその場所に移動できます。

sed '$r file.bak' file.php >tmpfile && mv tmpfile file.php

-iまたは、一部の実装sedにあるオプションを(安全でない方法で)使用することもできます。

sed -i '$r file.bak' file.php

おすすめ記事