sed

Cara mengganti kejadian terakhir menggunakan 'sed'

Cara mengganti kejadian terakhir menggunakan 'sed'
Perintah 'sed' digunakan di Linux untuk pelbagai jenis operasi teks, seperti memasukkan, menghapus, mengganti, dll. Pelbagai jenis tugas penggantian dapat dilakukan dengan menggunakan perintah 'sed' dengan mudah. Sebarang tugas penggantian dapat dilakukan berdasarkan teks atau corak pencarian. Teks atau corak pencarian boleh berlaku berkali-kali dalam rentetan atau fail di mana pencarian akan dilakukan. Bagaimana anda dapat menggantikan kejadian terakhir dari teks carian atau corak telah ditunjukkan dalam tutorial ini.

Ganti kejadian terakhir teks dalam rentetan:

Bahagian ini menunjukkan bagaimana kejadian terakhir pola pencarian dalam rentetan dapat diganti dengan menggunakan perintah 'sed'.

Contoh-1: Ganti kejadian terakhir perkataan berdasarkan corak

Perintah 'sed' berikut akan mencari perkataan 'PHP' dalam rentetan dan ganti kata carian dengan perkataan 'AngularJS' sekiranya perkataan itu ada dalam rentetan.

$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |
sed / \ (.* \) PHP / \ 1AngularJS / '

Output berikut akan muncul setelah menjalankan perintah. Di sini, perkataan 'PHP' terdapat dua kali dalam rentetan, dan kejadian terakhir telah diganti dengan kata ' SudutJS'.

Contoh-2: Ganti kejadian terakhir berdasarkan pola berdasarkan digit

Perintah 'sed' berikut akan mencari sebarang digit dalam rentetan dan menggantikan digit terakhir dengan nombor tersebut 9.

$ echo "Nilai kaunter pertama 2. Nilai kaunter kedua 4 "|
sed / \ (.* \) [0-9]) * / \ 19 / '

Output berikut akan muncul setelah menjalankan perintah. Di sini, digit muncul dua kali dalam rentetan, dan digit terakhir, 4, telah digantikan dengan nombor 9.

Contoh-3: Ganti digit terakhir nombor berdasarkan corak

Perintah 'sed' berikut akan menggantikan digit terakhir yang terdapat dalam nilai rentetan dengan nilai dengan sifar berganda (0 0).

$ echo "Harga produk ialah $ 500."| sed 's / \ (.* \) [0-9] / \ 100 / '

Output berikut akan muncul setelah menjalankan perintah. Di sini, 500 wujud dalam nilai rentetan. Jadi, menurut arahan penggantian, sifar terakhir dari 500 telah digantikan oleh dua sifar berganda, dan nilai yang diganti adalah 5000.

Contoh-4: Gantikan kejadian terakhir perkataan dengan perkataan lain

Perintah 'sed' berikut akan mencari perkataan 'Jun' dalam rentetan dan ganti kejadian terakhir perkataan dengan nilai, 'Mungkin'.

$ printf "% s \ n" Jan Feb Jun Jun Jun Jun | tr '\ n' "|
sed / \ (.* \) Jun / \ 1May / '| tr "'\ n'

Output berikut akan muncul setelah menjalankan perintah. Di sini, perkataan 'Jun' terdapat dua kali dalam rentetan, dan kejadian terakhir telah digantikan oleh perkataan 'Mungkin'.

Gantikan kejadian terakhir teks dalam fail:

Buat fail teks bernama Jualan.txt dengan kandungan berikut untuk menguji arahan 'sed' yang digunakan di bahagian tutorial ini untuk menggantikan kejadian terakhir teks berdasarkan corak.

Jualan.txt

Jumlah Bulan Bulan
Januari 2018 $ 200000
Mac 2019 $ 300000
April 2019 $ 150000
Mac 2020 $ 350000
Mei 2019 $ 210000
Januari 2020 $ 240000

Contoh-5: Gantikan kejadian terakhir perkataan dengan perkataan lain

Perintah 'sed' berikut akan mencari perkataan 'Januari'dalam fail dan ganti kejadian terakhir perkataan ini dengan perkataan, 'Julai'.

$ cat Jualan.txt
$ sed '$ s / Januari / Julai /' Jualan.txt

Output berikut akan muncul setelah menjalankan perintah. Perkataan itu 'Januari' muncul dua kali dalam fail. Kejadian terakhir yang berlaku di 7ika baris fail telah diganti dengan perkataan 'Julai'dalam output.

Contoh-6: Gantikan kejadian terakhir nombor dengan nombor lain

'tac' arahan digunakan untuk membalikkan kandungan fail. 'tac' perintah digunakan dengan perintah 'sed' dalam perintah berikut untuk menggantikan kejadian terakhir dari '2019'dengan perkataan, '2017'.

$ cat Jualan.txt
$ tac Jualan.txt | sed '0, / 2019 / s / 2019/2017 /' | tac

Output berikut akan muncul setelah menjalankan perintah. Di sini, nilai tahun, '2019'muncul tiga kali dalam fail. Yang pertama, 'tac' arahan telah membalikkan kandungan fail dan menghantar output ke 'sed' arahan untuk menggantikan kejadian pertama dari '2019' yang merupakan kejadian terakhir dalam fail mengikut nilai tahun, '2017'. Selepas penggantian, output telah dihantar ke 'tac' arahan untuk membalikkan output semula. Dengan cara ini, kejadian terakhir '2019'telah digantikan dengan nilai, '2017'.

Contoh-7: Ganti semua baris berdasarkan kejadian terakhir perkataan

Yang berikut 'sed' perintah akan menggantikan baris dengan tab (\ t) teks yang dibatasi di mana garis bermula dengan rentetan 'Mar' buat kali terakhir dalam fail.

$ cat Jualan.txt
$ tac Jualan.txt | sed '0, / ^ Mar.* / s / ^ Mac.* / Julai \ t \ t2018 \ t $ 400000 / '| tac

Output berikut akan muncul setelah menjalankan perintah. Dua baris dalam fail bermula dengan rentetan, 'Mar', dan kejadian terakhir rentetan ini muncul di 5ika garisan. Yang pertama 'tac' perintah telah digunakan untuk membalikkan kandungan fail dan mengirim output ke 'sed ' perintah. 'sed'Perintah telah menggantikan baris dengan teks,'Jully 2018 $ 400000'di mana rentetan pencarian dijumpai buat pertama kalinya. Keluaran dari si 'sed'perintah telah dihantar ke 'tac' perintah lagi untuk membalikkan output yang merupakan kandungan utama fail.

Kesimpulan:

Perintah 'sed' dapat digunakan untuk mengganti mana-mana bahagian dari rentetan atau baris file dengan cara yang berbeda dengan menggunakan pola ekspresi biasa. Tutorial ini menunjukkan cara untuk menggantikan kejadian terakhir pencarian teks dalam rentetan atau file dengan menggunakan beberapa perintah 'sed'. Bagaimana perintah 'tac' dapat digunakan dengan perintah 'sed' untuk menggantikan kejadian terakhir pencarian teks juga telah ditunjukkan dalam tutorial ini. Tetapi semua arahan yang digunakan di sini akan menghasilkan output buat sementara waktu. Anda harus menggunakan pilihan '-i' dengan perintah 'sed' untuk mengubah kandungan fail secara kekal berdasarkan corak.

Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...