Saya telah melihat-lihat sed perintah untuk menambahkan teks ke dalam file pada baris tertentu.
Ini berfungsi menambahkan teks setelah baris 1:
sed '1 a
Tapi saya ingin menambahkannya sebelum baris 1. Ini akan menjadi:
sed '0 a
tapi saya mendapatkan kesalahan ini:invalid usage of line address 0 .
Ada saran?
Jawaban yang Diterima:
Gunakan sed sisipan (i ) yang akan menyisipkan teks pada baris sebelumnya.
sed '1 i
Pembaruan penulis pertanyaan:
Untuk membuatnya, edit file di tempatnya – dengan GNU sed – Saya harus menambahkan -i pilihan:
sed -i '1 ianything' file
Juga sintaks
sed -i '1i text' filename
Untuk sed non-GNU
Anda harus menekan tombol kembali segera setelah garis miring terbalik 1i dan setelah first_line_text :
sed -i '1i
first_line_text
'
Perhatikan juga bahwa beberapa sed non non-GNU implementasi (misalnya yang ada di macOS) memerlukan argumen untuk -i bendera (gunakan -i '' untuk mendapatkan efek yang sama dengan GNU sed ).
Untuk sed implementasi yang tidak mendukung -i sama sekali, jalankan tanpa opsi ini tetapi arahkan output ke file baru. Kemudian ganti file lama dengan file yang baru dibuat.