Jika file hanya satu baris, Anda dapat menggunakan:
sed 's/^/insert this /' oldfile > newfile
Jika lebih dari satu baris. salah satu dari:
sed '1s/^/insert this /' oldfile > newfile
sed '1,1s/^/insert this /' oldfile > newfile
Saya telah menyertakan yang terakhir sehingga Anda tahu bagaimana melakukan rentang garis. Keduanya "ganti" penanda garis awal pada baris yang terpengaruh dengan teks yang ingin Anda sisipkan. Anda juga bisa (dengan asumsi sed
Anda cukup modern) gunakan:
sed -i 'whatever command you choose' filename
untuk melakukan pengeditan di tempat.
Jika Anda ingin menambahkan baris di awal file, Anda perlu menambahkan \n
di akhir string dalam solusi terbaik di atas.
Solusi terbaik akan menambahkan string, tetapi dengan string, tidak akan menambahkan baris di akhir file.
sed -i '1s/^/your text\n/' file
Gunakan subkulit:
echo "$(echo -n 'hello'; cat filename)" > filename
Sayangnya, substitusi perintah akan menghapus baris baru di akhir file. Untuk menyimpannya, seseorang dapat menggunakan:
echo -n "hello" | cat - filename > /tmp/filename.tmp
mv /tmp/filename.tmp filename
Pengelompokan atau substitusi perintah tidak diperlukan.
sed
dapat beroperasi pada alamat:
$ sed -i '1s/^/<added text> /' file
Apa 1s
ajaib ini Anda lihat di setiap jawaban di sini? Pengalamatan baris!.
Ingin menambahkan <added text>
pada 10 baris pertama?
$ sed -i '1,10s/^/<added text> /' file
Atau Anda dapat menggunakan Command Grouping
:
$ { echo -n '<added text> '; cat file; } >file.new
$ mv file{.new,}