GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menyisipkan Teks Sebelum Baris Pertama Sebuah File?

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.


Linux
  1. Cara Menyisipkan Teks di awal setiap baris di Vim

  2. Bagaimana Cara Menghapus N Baris Pertama Dari File Ascii Menggunakan Perintah Shell?

  3. Bagaimana melakukan sed like text ganti dengan python?

  1. Bagaimana cara menyisipkan teks di awal file?

  2. sed untuk memasukkan hanya pada pertandingan pertama

  3. Bagaimana cara membaca baris terakhir file teks menjadi variabel menggunakan Bash?

  1. Belajar menggunakan editor teks Sed

  2. Memanipulasi teks pada baris perintah dengan sed

  3. Bagaimana cara mengekstrak teks dari file besar, mulai dari kemunculan pertama string?