Bagaimana Memasukkan Garis setelah Pertandingan menggunakan `sed`?

How Insert Line After Match Using Sed



Salah satu arahan Linux yang berguna dan kuat adalah perintah sed. Perintah ini digunakan untuk melakukan berbagai jenis tugas di Linux, seperti memasukkan, mengemas kini, dan menghapus teks atau baris tertentu berdasarkan padanan. Anda dapat memasukkan teks dalam rentetan atau file dengan cara yang berbeda dengan menggunakan perintah sed.

Cara memasukkan garis setelah mencari padanan dalam rentetan atau garis ditunjukkan dalam tutorial ini.







Masukkan garis dalam Rentetan

Garis baru dapat dimasukkan setelah nilai string menggunakan perintah sed jika corak yang ditentukan dalam perintah sesuai dengan mana-mana bahagian nilai string.



Contoh berikut menunjukkan bagaimana baris baru dapat ditambahkan setelah nilai rentetan jika rentetan tertentu ada di mana saja dalam nilai rentetan.



Contoh-1: Masukkan garis dalam rentetan setelah mencari padanan

Perintah berikut akan mencari inng dalam rentetan, saya suka pengaturcaraan, dan sebaris teks, Adakah anda suka pengaturcaraan? akan dimasukkan selepas rentetan sekiranya rentetan pencarian ada.





Di sini, watak & digunakan untuk memasukkan baris selepas rentetan.

$membuang 'Saya suka pengaturcaraan.' | sed 's / inng / & Adakah anda suka pengaturcaraan? /'

Output berikut menunjukkan bahawa inng tidak ada dalam rentetan dan tidak ada garis yang dimasukkan setelah tali.




Perintah berikut akan mencari. dalam rentetan, saya suka pengaturcaraan dan terdapat dalam rentetan.

$membuang 'Saya suka pengaturcaraan.' | sed 's / ing ./& Anda suka pengaturcaraan? /'

Output berikut menunjukkan bahawa baris baru ditambahkan selepas rentetan.

Masukkan baris dalam Fail

Terdapat dua cara untuk memasukkan baris setelah pertandingan dijumpai dalam fail yang disebutkan di bawah. Apabila perintah sed digunakan tanpa pilihan -i, maka isi fail akan tetap tidak berubah, dan output akan menunjukkan kandungan fail dengan baris baru yang dimasukkan. Anda harus menggunakan pilihan -i dengan perintah sed untuk memasukkan baris baru secara kekal dalam fail jika corak pemadanan ada di dalam file.

A. Menggunakan arahan sed

A dapat digunakan dalam corak pencarian sed untuk menambahkan satu atau lebih baris dalam fail setelah baris di mana corak pencarian sesuai atau setelah nombor baris tertentu.

B. Menggunakan i dalam arahan sed

I boleh digunakan dalam corak carian arahan sed untuk memasukkan satu atau lebih baris dalam fail sebelum garis di mana corak pencarian sesuai.

Masukkan baris dalam fail berdasarkan corak:

Buat fail teks yang dibatasi tab bernama produk.txt dengan kandungan berikut untuk menunjukkan kegunaan bendera di atas dalam arahan sed.

produk.txt

Nama ID

01 Krim cambuk

02 Serbuk Koko

03 Gula

04 Telur

05 Tepung

Contoh-2: Masukkan garis selepas nombor garis tertentu menggunakan a

Perintah berikut menunjukkan bagaimana baris baru dapat ditambahkan, setelah nombor baris tertentu dari file products.txt, berdasarkan corak yang digunakan dalam perintah sed.

Di sini, arahan pertama akan menunjukkan kandungan fail yang ada. Perintah sed akan menambahkan teks, serbuk penaik b01, setelah dua baris pertama fail. Perintah terakhir digunakan untuk memeriksa bahawa kandungan fail diubah atau tidak.

$kucingproduk.txt

$sed '2 a b01 tBakar serbuk'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh-3: Masukkan garis selepas baris terakhir menggunakan a

Perintah berikut menunjukkan cara untuk menambahkan baris baru selepas baris terakhir fail. Perintah pertama dan terakhir menunjukkan kandungan fail yang ada sebelum dan sesudah melaksanakan perintah sed. Simbol $ digunakan dalam corak arahan sed untuk menyebut baris terakhir fail.

$kucingproduk.txt

$sed '$ a b01 tBakar serbuk'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh-4: Masukkan garis di mana sahaja dalam fail setelah memadankan corak menggunakan a

Perintah sed berikut menunjukkan bagaimana baris baru dapat ditambahkan di mana sahaja dalam fail berdasarkan corak yang sepadan. Corak yang digunakan dalam perintah sed akan mencari baris apa pun bermula dengan s01, dan menambahkan rentetan baru setelahnya. Baris keempat fail bermula dengan s01, dan baris baru akan dimasukkan setelah baris itu.

$kucingproduk.txt

$sed '/^s01.*/a b01 tBakar Serbuk'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah.


Perintah sed berikut akan mencari mana-mana baris yang berakhir dengan Serbuk dan memasukkan baris baru selepasnya. Baris ketiga fail diakhiri dengan Serbuk. Jadi, baris baru akan dimasukkan selepas baris itu.

$kucingproduk.txt

$sed '/ Serbuk $ / a b01 tBakar Serbuk'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh-5: Masukkan beberapa baris selepas corak pemadanan menggunakan a

Perintah sed berikut menunjukkan cara untuk menambah beberapa baris di dalam kandungan fail berdasarkan corak yang sepadan.

Di sini, dua baris akan ditambah selepas baris ketiga, mengikut corak.

$kucingproduk.txt

$sed '/ ^ [a-c] / a b01 tBakar Serbuk nb02 tBakar Soda'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh-6: Masukkan garis setelah memadankan corak menggunakan I

$kucingproduk.txt

$sed '/ cream / i b01 tBakar Serbuk'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Contoh-7: Masukkan garis secara kekal selepas corak pemadanan menggunakan pilihan -i

Perintah sed berikut menunjukkan cara mengubah kandungan fail secara kekal. Pilihan i digunakan dengan perintah sed untuk memasukkan baris baru dalam fail berdasarkan corak.

$kucingproduk.txt

$sed -i '/ e $ / a g01 tGhee'produk.txt

$kucingproduk.txt

Output berikut akan muncul setelah menjalankan perintah di atas.

Kesimpulan:

Kaedah memasukkan dua atau lebih baris dalam fail dengan menggunakan perintah sed dengan corak telah ditunjukkan dalam tutorial ini untuk membantu pembaca menerapkan perintah ini untuk memasukkan baris dalam pola sementara atau kekal berdasarkan corak.