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.