ファイルに1行を「追加」するコマンドは何ですか? [コピー]

ファイルに1行を「追加」するコマンドは何ですか? [コピー]

重複の可能性:
複数のファイルの先頭にタグを追加するには?

ヘッダーに行を含む一時ファイルを作成し、完了したら再度移動するだけでなく、ファイルにいくつかの行を追加する標準的な方法はありますか?

言い換えれば、時々(echo #GPL license; cat $file) > tmpfile; mv tmpfile $file

編集2

まず、一般的なディストリビューションに付属の標準コマンドがあることを確認したかったのです。

編集する

前に追加されるソースは、固定文字列だけでなくファイルでもあります。cat $header $file > tmpfile; mv tmpfile $file

ベストアンサー1

sed(GNU)が機能する場合:

$ sed -i '1i #GPL License' file

ソースがファイルの場合:

ソースファイル:

$ cat file1
hi
hello
$ cat file2
welcome to
Unix SO.

sed コマンド:

$ sed -i  '1{
r file1
h;d
};2{H;g;}' file2

sedコマンド後の出力:

$ cat file2
hi
hello
welcome to
Unix SO.

sedの 'r'コマンドは、最初の行より前のファイルを読み取ることができないため、このソリューションです。最初の行は予約されたメモリに保存され、file1の内容が端末に送信され、2行目が来ると最初の行と一緒に印刷されます。

おすすめ記事