私は次の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」コマンドは現在の期間が終了するまで出力を遅らせます。