Nコマンド経由

Nコマンド経由

私は次のSEDコマンドを使用してあるファイルを別のファイルの最初の行に挿入しようとしましたが、大きな成功を収めませんでした。毎回行 1 の後にファイルを挿入します。 1号線の前に挿入するスイッチはありますか?

sed -i '1r file1.txt' file2.txt

よろしくお願いします。

ベストアンサー1

Nコマンド経由

file2.txt複数の行がある場合(そうでない場合は他のセクションを参照):

sed -i -e '1 { r file1.txt' -e 'N; }' file2.txt

秘密は、Nコマンドを使用して最初の行の印刷を延期することです。

マニュアルから:

窒素

パターン空間に次の入力行を追加します。

eコマンド経由

前提file2.txtは空ではないということです(そうでない場合は、単にコピーを作成してください)。

sed -i -e '1 e cat file1.txt' file2.txt

GNUは、引数で指定されたコマンドを実行するコマンドをsed提供します。e結果は直ちに出力されます。

マニュアルから:

e [コマンド]

このコマンドを使用すると、シェルコマンドの入力をパターンスペースにパイプできます。引数がない場合、 'e'コマンドはパターンスペース内のコマンドを実行し、パターンスペースを出力に置き換えます。

代わりに引数を指定すると、「e」コマンドはそれをコマンドとして解釈し、その出力を出力ストリームに送信します。

「r」コマンドとは異なり、このコマンドの出力はすぐに印刷されますが、「r」コマンドは現在の期間が終了するまで出力を遅らせます。

おすすめ記事