ファイルが 1 行のみの場合は、次を使用できます:
sed 's/^/insert this /' oldfile > newfile
複数行の場合。次のいずれか:
sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile
行の範囲を行う方法を理解できるように、後者を含めました。これらはどちらも、影響を受ける行の開始行マーカーを挿入したいテキストに「置き換え」ます。することもできます (sed
十分に現代的です) 使用:
sed -i 'whatever command you choose' filename
インプレース編集を行います。
ファイルの先頭に行を追加する場合は、\n
を追加する必要があります 上記の最良の解決策の文字列の最後に。
最善の解決策は文字列を追加することですが、文字列を使用すると、ファイルの末尾に行が追加されません。
sed -i '1s/^/your text\n/' file
サブシェルを使用:
echo "$(echo -n 'hello'; cat filename)" > filename
残念ながら、コマンド置換はファイルの末尾にある改行を削除します。それらを維持するために使用できるもの:
echo -n "hello" | cat - filename > /tmp/filename.tmp
mv /tmp/filename.tmp filename
グループ化もコマンド置換も必要ありません。
sed
アドレスで操作できます:
$ sed -i '1s/^/<added text> /' file
この魔法の 1s
は何ですか あなたはここですべての答えを見ますか?行アドレス指定!.
<added text>
を追加したい 最初の 10 行で?
$ sed -i '1,10s/^/<added text> /' file
または Command Grouping
を使用できます :
$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}