sed

Cara Mengganti Segala-galanya Selepas Pola menggunakan Perintah 'sed'

Cara Mengganti Segala-galanya Selepas Pola menggunakan Perintah 'sed'

Tugas penggantian dapat dilakukan di Linux dengan cara yang berbeza. Perintah 'sed' adalah salah satu cara untuk melakukan tugas penggantian. Perintah ini dapat digunakan untuk mengganti teks dalam string atau file dengan menggunakan pola yang berbeda. Bagaimana anda dapat mengganti semuanya setelah corak pemadanan menggunakan perintah 'sed' ditunjukkan dalam tutorial ini.

Ganti semuanya selepas perlawanan dalam rentetan:

Bagaimana bahagian tali boleh diganti berdasarkan corak yang sepadan dan $ PARTITION_COLUMN telah ditunjukkan di bahagian tutorial ini. Tetapi pemboleh ubah ini berfungsi jika coraknya sesuai dengan sebarang perkataan di awal atau tengah rentetan. Ia tidak akan menggantikan teks jika coraknya sesuai dengan kata rentetan terakhir.

Contoh-1: Ganti semua selepas perlawanan menggunakan $ PARTITION_COLUMN

Perintah berikut akan mencari watak 'a', dan selebihnya setelah 'a' akan digantikan oleh teks, "laman blog yang popular". $ PARTITION_COLUMN.* digunakan untuk menentukan bahagian yang tersisa setelah karakter, 'a'.

$ echo "LinuxHint adalah laman web" | sed "s / a $ PARTITION_COLUMN.* / laman blog yang popular / "

Output berikut akan muncul setelah menjalankan perintah. Di sini, 'laman web' telah digantikan dengan 'laman blog yang popular'.


Corak berikut akan mencari perkataan 'laman web'Dalam tali dan ganti bahagian yang tinggal dengan'laman web'Oleh teks,'laman blog yang popular'jika perlawanan itu ada dan'laman web'Bukan bahagian kata terakhir rentetan.

$ echo "LinuxHint adalah laman web" | sed "s / web.* $ PARTITION_COLUMN.* / laman blog yang popular / "

Output berikut akan muncul setelah menjalankan perintah. Di sini, 'laman web' adalah kata terakhir dari rentetan, dan tidak ada penggantian yang dilakukan untuk alasan ini.

Contoh-2: Ganti semua selepas perlawanan menggunakan corak

Perintah berikut akan mencari perkataan 'bashsecara global dalam rentetan dan ganti segala-galanya dengan perkataan jika perkataan itu ada dalam rentetan. 'g'Digunakan di sini untuk carian global.

$ echo "Saya suka pengaturcaraan bash" | sed "s / bash.* / skrip python / g "

Output berikut akan muncul setelah menjalankan perintah. Di sini, 'bash' ada di tengah-tengah rentetan, dan penggantian telah dilakukan.

Ganti semuanya selepas pertandingan dalam fail:

Semua kandungan baris tertentu atau beberapa baris atau baris fail yang tersisa setelah pertandingan dapat diganti menggunakan 'sed'perintah. Buat fail teks bernama kehadiran.txt dengan kandungan berikut untuk menguji contoh yang ditunjukkan dalam bahagian ini.

kehadiran.txt

1108885 hadir
1999979 hadir
1769994 tidak hadir
1105656 tidak hadir
1455999 tidak hadir

Contoh -3: Ganti semua kandungan dari barisan fail selepas pertandingan

Perintah 'sed' berikut akan mencari nombor 1769994 dalam fail, dan segala sesuatu dengan nombor akan diganti dengan teks, '1586844 ada' jika nombor itu ada di mana-mana baris fail.

$ elaun kucing.txt
$ sed "s / 1769994.* / 1586844 hadir / "hadir.txt

Output berikut akan muncul menjalankan perintah. Di sini, nombor carian ada di baris ketiga fail, dan penggantian telah dilakukan.

Contoh -4: Ganti semua kandungan dari beberapa baris fail selepas pertandingan

Perintah 'sed' berikut menunjukkan penggunaan pemboleh ubah $ PARTITION_COLUMN untuk menggantikan beberapa baris dari fail. Perintah akan mencari '110' pada permulaan setiap baris fail dan mengganti semuanya dengan '110' dengan teks 'Entri Tidak Sah' di mana teks yang sesuai akan dijumpai.

$ kehadiran kucing.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Kehadiran Penyertaan Tidak Sah / ".txt

Output berikut akan muncul setelah menjalankan perintah. '110' terdapat dalam dua baris fail, dan ini telah diganti dengan teks pengganti.

Contoh-5: Ganti semua kandungan dari baris fail menggunakan 'c' selepas pertandingan

Yang berikut 'sedarahan menunjukkan penggunaan 'c'untuk menggantikan segalanya selepas perlawanan. Di sini, 'c'menunjukkan perubahan. Perintah akan mencari perkataan 'hadir'dalam fail dan ganti semua baris dengan teks,'Garis ini diganti'jika perkataan itu ada di mana-mana baris fail.

$ kehadiran kucing.txt
$ sed '/ present / c Baris ini digantikan' kehadiran.txt

Output berikut akan muncul setelah menjalankan perintah. Perkataan 'sekarang' terdapat pada dua baris pertama fail, dan kedua baris ini telah digantikan oleh teks pengganti.

Contoh-6: Ganti semua kandungan dari baris fail berdasarkan corak permulaan dan akhir

Kadang-kadang diperlukan untuk mengganti teks berdasarkan corak permulaan dan akhir. Perintah 'sed' berikut menunjukkan cara untuk menentukan corak permulaan dan akhir untuk menggantikan baris dari fail. Perintah akan mencari baris-baris dalam fail yang bermula dengan angka 110 dan diakhiri dengan kata 'tidak ada' dan mengganti semuanya dengan kata 'diganti' di mana coraknya sepadan.

$ kehadiran kucing.txt
$ sed -e / ^ 110.* tidak hadir $ / diganti / g 'kehadiran.txt

Output berikut akan muncul setelah menjalankan perintah. Di sini, baris pertama dan keempat bermula dengan nombor 110, tetapi perkataan 'tidak hadir' hanya terdapat pada baris keempat. Jadi, baris keempat fail telah diganti dengan teks pengganti.

Kesimpulan:

Perintah 'sed' adalah alat Linux yang sangat kuat untuk melakukan pelbagai jenis tugas berkaitan pemprosesan teks. Tugas penggantian berdasarkan pola pencocokan dibincangkan dalam tutorial ini dengan menggunakan pelbagai jenis corak dalam perintah 'sed'. $ PARTITION_COLUMN, 'c', dan '.* 'digunakan dalam tutorial ini untuk mengganti semua baris fail di mana corak pemadanan ada. Penggunaan beberapa watak untuk menentukan corak telah ditunjukkan di sini, seperti '^' dan '$'. Banyak watak lain wujud untuk menentukan corak dalam ungkapan biasa untuk tujuan mencari. Saya harap tutorial ini dapat membantu pembaca mengetahui asas-asas penggantian segala sesuatu dari fail selepas pertandingan.

Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...
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...