sed

Cara mengganti beberapa baris menggunakan arahan 'sed'

Cara mengganti beberapa baris menggunakan arahan 'sed'
Kadang-kadang ia memerlukan penggantian beberapa baris fail dengan watak atau teks tertentu. Perintah yang berlainan ada di Linux untuk menggantikan beberapa baris fail. Perintah 'sed' adalah salah satu daripada mereka untuk melakukan jenis tugas ini. Bentuk lengkap 'sed' adalah Steam Editor, dan ini terutama digunakan untuk membaca dan menukar teks dengan cara yang berbeza dengan menggunakan ungkapan biasa. Bagaimana perintah ini dapat digunakan untuk mengganti beberapa baris fail dengan cara yang berbeza dijelaskan dalam tutorial ini.

Lembaran Menipu 'sed' yang biasa digunakan:

Karakter yang paling biasa digunakan dalam arahan 'sed' dijelaskan dalam jadual berikut.

Perwatakan Tujuan
a Ia digunakan untuk menambahkan kandungan.
b Ia digunakan untuk percabangan kandungan.
c Ia digunakan untuk menukar kandungan.
d Ia digunakan untuk menghapus barisan fail.
D Ia digunakan untuk menghapus baris pertama fail.
g Ia digunakan untuk menyalin dari teks penahan.
G Ia digunakan untuk menambahkan dari teks penahan.
h Ia digunakan untuk menyalin teks penahan.
H Ini digunakan untuk menambahkan teks penahan.
i Ia digunakan untuk penyisipan.
Saya Ia digunakan untuk mencetak baris pengganti.
n Ia digunakan untuk pergi ke baris seterusnya.
N Ia digunakan untuk menambahkan baris input seterusnya.
hlm Ia digunakan untuk mencetak.
P Ia digunakan untuk mencetak baris pertama.
q Ia digunakan untuk berhenti.
Q Ia digunakan untuk berhenti dengan segera.
r Ia digunakan untuk membaca fail.
R Ia digunakan untuk membaca baris dari fail.
s Ia digunakan untuk menggantikan.
t Ia digunakan untuk menguji penggantian.
T Ia digunakan untuk menguji tiada penggantian.
w Ia digunakan untuk menulis ke fail.
W Ia digunakan untuk menulis baris ke fail.
x Ia digunakan untuk menukar corak dan menahan.
y Ia digunakan untuk menterjemahkan.
z Ia digunakan untuk membersihkan garis.
'=' Ia digunakan untuk mencetak nombor baris.

Ganti beberapa baris dengan menggunakan arahan 'sed' dari terminal:

Bagaimana perintah 'sed' dapat digunakan untuk mengganti beberapa baris dari fail dari terminal ditunjukkan di bahagian tutorial ini. Buat fail bernama sed.txt dengan kandungan berikut menguji perintah bahagian ini.

sed.txt

Bentuk lengkap dari sed adalah "penyunting aliran".

Ini adalah utiliti Unix yang digunakan untuk membaca dan menukar teks dalam format yang berbeza.

Ia dikembangkan oleh Lee E. McMahon.

Ia digunakan untuk pemprosesan teks.

Ia menyokong ungkapan biasa.

Contoh-1: Ganti Dua Garis Berturut-turut

Perintah 'sed' berikut akan menggantikan dua baris berturut-turut dengan baris lain. Di sini, pilihan -z digunakan untuk menggantikan baris berturut-turut dengan data null sebelum menambahkan teks penggantian. Menurut perintah, 3rd dan 4ika baris fail akan diganti dengan teks, 'Ini adalah alat yang sangat berguna'.

$ kucing sed.txt
$ sed -z 's / Ia dikembangkan oleh Lee E. McMahon.\ nIa digunakan untuk teks
pemprosesan./ Ini adalah alat yang sangat berguna./ 'Sed.txt

Output berikut akan muncul setelah menjalankan perintah.

Contoh-2: Ganti beberapa baris berdasarkan padanan dan bendera global

Perintah 'sed' berikut akan menggantikan semua baris yang bermula dengan perkataan, 'Ini' dengan perkataan, 'Garis ini diganti '.

$ kucing sed.txt
$ sed 's / ^ Ini.* / Garis ini diganti / g 'sed.txt

Output berikut akan muncul setelah menjalankan perintah. Tiga baris mengandungi perkataan 'Ia'dalam fail. Jadi, baris-baris ini telah digantikan oleh teks pengganti.

Contoh-3: Ganti beberapa baris berdasarkan padanan dan arahan baris seterusnya

Perintah 'sed' berikut akan menggantikan perkataan, 'adalah'dengan perkataan,'adalah'dengan arahan baris seterusnya,' n '.

$ kucing sed.txt
$ sed 'n; / is / s / is / was /' sed.txt

Output berikut akan muncul setelah menjalankan perintah. Di sini, 'adalah' wujud dalam 2nd dan 4ika baris fail, dan garis-garis ini diubah suai dengan perkataan 'adalah'.

Ganti beberapa baris dengan membuat fail skrip 'sed':

Dalam contoh sebelumnya, perintah 'sed' telah dilaksanakan dari terminal. Tetapi itu adalah bahasa skrip, dan jika skrip berisi banyak pernyataan, maka lebih baik membuat file sed dengan skrip. Buat fail teks bernama pelajar.txt dengan kandungan berikut di mana skrip 'sed' akan diterapkan.

pelajar.txt

ID: 111045
Nama: Robert
Jabatan: CSE
Kumpulan: 35
ID: 111876
Nama: Joseph
Jabatan: BBA
Kumpulan: 27
ID: 111346
Nama: William
Jabatan: CSE
Kumpulan: 45
ID: 111654
Nama: Charles
Jabatan: EEE
Kumpulan: 41
ID: 111346
Nama: John
Jabatan: CSE
Kumpulan: 25
ID: 111746
Nama: Thomas
Jabatan: CSE
Kumpulan: 15

Contoh-4: Ganti beberapa baris fail menggunakan fail skrip 'sed'

Buat fail sed bernama ganti.sed dengan kandungan berikut untuk menggantikan beberapa baris berdasarkan corak carian. Di sini, perkataan 'CSE'akan dicari dalam fail teks, dan jika kecocokan itu ada, maka ia akan mencari lagi nombor 35 dan 15. Sekiranya padanan kedua ada dalam fail, maka ia akan diganti dengan nombor 45.

ganti.sed

/ CSE /
p; n;
/ 35 /
s / 35/45 /;
p; d;

/ 15 /
s / 15/55 /;
p; d;


p;

Jalankan arahan berikut untuk memeriksa kandungan fail yang ada. 'CSE' muncul empat kali dalam fail teks. 35 dan 15 wujud di dua tempat.

pelajar $ kucing.txt

Perintah berikut akan menggantikan kandungan pelbagai baris berdasarkan skrip sed.

$ sed -n -f ganti.pelajar sed.txt

Output berikut akan muncul setelah menjalankan perintah.

Kesimpulannya

Kaedah yang berbeza untuk menggantikan beberapa baris atau kandungan beberapa baris menggunakan arahan 'sed' telah ditunjukkan dalam tutorial ini. Bagaimana skrip 'sed' dapat dijalankan dari file sed juga ditunjukkan dalam tutorial ini. Saya harap tutorial ini dapat membantu pembaca untuk mengganti beberapa baris fail dengan menggunakan arahan 'sed'.

Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...