Output berikut menunjukkan bahawa GNU Sed versi 4.4 dipasang dalam sistem.
Sintaks:
sed [pilihan]...[skrip] [fail]
Sekiranya tidak ada nama fail yang diberi perintah `sed`, maka skrip akan berfungsi pada data input standard. Skrip `sed` dapat dijalankan tanpa pilihan.
Kandungan :
- Penggantian teks asas menggunakan ‘sed’
- Ganti semua contoh teks dalam baris fail tertentu dengan menggunakan pilihan 'g'
- Gantikan kejadian kedua hanya perlawanan pada setiap baris
- Ganti kejadian terakhir hanya pada perlawanan pada setiap baris
- Gantikan padanan pertama dalam fail dengan teks baru
- Ganti padanan terakhir dalam fail dengan teks baru
- Melarikan garis miring balik dalam perintah ganti untuk menguruskan carian dan penggantian laluan fail
- Ganti semua fail penuh dengan hanya nama fail tanpa direktori
- Teks pengganti tetapi hanya jika beberapa teks lain terdapat dalam rentetan
- Teks pengganti tetapi hanya jika beberapa teks lain tidak dijumpai dalam rentetan
- Tambahkan rentetan sebelum selepas corak pemadanan menggunakan ‘ 1 '
- Padamkan garis yang sepadan
- Padamkan garis padanan dan 2 baris selepas garis padanan
- Padamkan semua ruang di hujung baris teks
- Padamkan semua baris yang mempunyai pertandingan dua kali pada baris
- Padamkan semua baris yang mempunyai satu-satunya ruang kosong
- Padamkan semua watak yang tidak boleh dicetak
- Sekiranya ada pertandingan dalam baris, tambahkan sesuatu ke hujung baris
- Sekiranya terdapat perlawanan di baris masukkan baris sebelum perlawanan
- Sekiranya terdapat perlawanan di baris masukkan baris selepas perlawanan
- Sekiranya tidak ada perlawanan, tambahkan sesuatu ke hujung baris
- Sekiranya tidak ada padanan hapus baris
- Gandakan teks yang dipadankan setelah menambahkan ruang selepas teks
- Ganti salah satu senarai rentetan dengan rentetan baru
- Ganti rentetan yang dipadankan dengan tali yang mengandungi baris baru
- Keluarkan baris baru dari fail dan masukkan koma di hujung setiap baris
- Keluarkan koma dan tambahkan baris baru untuk memisahkan teks menjadi beberapa baris
- Cari padanan dan padamkan huruf yang tidak sensitif
- Cari padanan tidak sensitif huruf besar dan ganti dengan teks baru
- Cari padanan tidak sensitif huruf besar dan ganti dengan huruf besar semua teks yang sama
- Cari padanan tidak sensitif huruf besar dan ganti dengan semua huruf kecil teks yang sama
- Ganti semua huruf besar dalam teks dengan huruf kecil
- Cari nombor dalam baris dan tambahkan simbol mata wang selepas nombor tersebut
- Tambahkan koma ke nombor yang mempunyai lebih daripada 3 digit
- Gantikan watak tab dengan 4 watak ruang
- Gantikan 4 watak ruang berturut-turut dengan watak tab
- Potong semua baris menjadi 80 aksara pertama
- Cari rentetan regex dan tambahkan beberapa teks standard selepasnya
- Cari rentetan string dan salinan kedua rentetan yang dijumpai selepasnya
- Menjalankan skrip `sed` berbilang baris dari fail
- Padankan corak berbilang baris dan ganti dengan teks berbilang baris baru
- Gantikan susunan dua perkataan yang sesuai dengan corak
- Gunakan pelbagai arahan sed dari baris perintah
- Gabungkan sed dengan arahan lain
- Masukkan baris kosong dalam fail
- Padamkan semua watak alfa-angka dari setiap baris fail.
- Gunakan ‘&’ untuk memadankan rentetan
- Tukar pasangan perkataan
- Huruf besar huruf pertama setiap perkataan
- Cetak nombor baris fail
1. Penggantian teks asas menggunakan ‘sed’
Sebarang bahagian tertentu dari teks dapat dicari dan diganti dengan menggunakan pola pencarian dan penggantian dengan menggunakan perintah `sed`. Dalam contoh berikut, ‘s’ menunjukkan tugas mencari dan mengganti. Kata 'Bash' akan dicari dalam teks, Bash Scripting Language dan jika kata itu ada dalam teks maka akan digantikan dengan kata 'Perl'.
$membuang 'Bahasa Skrip Bash' | sed / Bash / Perl / '
Pengeluaran:
Perkataan, 'Bash' terdapat dalam teks. Maka keluarannya adalah 'Perl Scripting Language'.
Perintah `sed` juga dapat digunakan untuk mengganti mana-mana bahagian kandungan fail. Buat fail teks bernama hari minggu.txt dengan kandungan berikut.
hari minggu.txt
IsninSelasa
Hari Rabu
Khamis
Jumaat
Sabtu
Ahad
Perintah berikut akan mencari dan mengganti teks ‘Sunday’, dengan teks ‘Sunday is holiday’.
$kucinghari minggu.txt$sed / Ahad / Ahad adalah hari cuti / 'hari minggu.txt
Pengeluaran:
‘Sunday’ ada dalam file weekday.txt dan perkataan ini digantikan oleh teks, ‘Sunday is holiday’ setelah melaksanakan perintah `sed` di atas.
2. Ganti semua contoh teks dalam baris fail tertentu menggunakan pilihan 'g'
Pilihan ‘g’ digunakan dalam perintah `sed` untuk menggantikan semua kejadian corak yang sepadan. Buat fail teks bernama python.txt dengan kandungan berikut untuk mengetahui penggunaan pilihan 'g'. Fail ini mengandungi perkataan. ‘Python’ berkali-kali.
python.txt
Python adalah bahasa yang sangat popular.
Python senang digunakan. Python mudah dipelajari.
Python adalah bahasa merentas platform
Perintah berikut akan menggantikan semua kejadian ‘ Python Di baris kedua fail, python.txt . Di sini, ‘Python’ berlaku dua kali pada baris kedua.
$ kucing sawa.txt$ sed'2 s / Python / perl / g'ular sawa.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan skrip. Di sini, Semua kejadian ‘Python’ di baris kedua digantikan dengan ‘Perl’.
3. Ganti kejadian kedua hanya perlawanan pada setiap baris
Sekiranya ada kata yang muncul berkali-kali dalam sebuah file maka kejadian tertentu pada setiap baris dapat diganti dengan menggunakan perintah `sed` dengan angka kejadian. Perintah `sed` berikut akan menggantikan kejadian kedua dari corak pencarian di setiap baris fail, python.txt .
$ sed's / Python / perl / g2'ular sawa.txtPengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, teks carian, ‘ Python ’ muncul dua kali pada baris kedua sahaja dan digantikan oleh teks, ' Perl '.
4. Ganti kejadian terakhir hanya pada perlawanan pada setiap baris
Buat fail teks bernama lang.txt dengan kandungan berikut.
lang.txt
Bahasa Pengaturcaraan Bash. Bahasa Pengaturcaraan Python. Program Bahasa Pengaturcaraan.
Bahasa Penanda Hiperteks.
Extensible Markup Language.
5. Ganti padanan pertama dalam fail dengan teks baru
Perintah berikut hanya akan menggantikan pertandingan pertama corak pencarian, ' Python 'Oleh teks, ‘Perl '. Di sini, '1' digunakan untuk memadankan kejadian pertama pada corak.
$ kucing sawa.txt$ sed'1 s / Python / perl /'ular sawa.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini. kejadian pertama 'Python' pada baris pertama digantikan dengan 'perl'.
6. Ganti pertandingan terakhir dalam fail dengan teks baru
Perintah berikut akan menggantikan kejadian terakhir dari corak pencarian, ‘Python 'Oleh teks, ‘Bash’. Di sini, '$' simbol digunakan untuk memadankan kejadian terakhir pada corak.
$ kucing sawa.txt$ tetapi -e'$ s / Python / Bash /'ular sawa.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
7. Melarikan garis miring balik dalam perintah ganti untuk mengurus carian dan penggantian jalur fail
Anda perlu melarikan diri dari garis miring terbalik di jalan fail untuk mencari dan mengganti. Perintah `sed` berikut akan menambahkan garis miring terbalik () di laluan fail.
$membuang /kediaman/ubuntu/kod/perl/tambah.pl| sed 's; /; \ /; g'Pengeluaran:
Laluan fail, ‘/Home/ubuntu/code/perl/add.pl’ disediakan sebagai input dalam perintah `sed` dan output berikut akan muncul setelah menjalankan perintah di atas.
8. Ganti semua fail penuh dengan hanya nama fail tanpa direktori
Nama fail dapat diambil dari laluan fail dengan mudah dengan menggunakan ` nama asas` arahan. Perintah `sed` juga dapat digunakan untuk mengambil nama fail dari jalur fail. Perintah berikut akan mengambil nama fail hanya dari laluan fail yang disediakan oleh perintah `echo`.
$membuang '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, nama fail, ‘ myfile.txt ’ dicetak sebagai output.
9. Teks pengganti tetapi hanya jika teks lain dijumpai dalam rentetan
Buat fail bernama ‘ Dept.txt ’ dengan kandungan berikut untuk menggantikan teks berdasarkan teks lain.
dept.txt
Senarai Jumlah Pelajar:
CSE - KiraEEE - Kira
Sivil - Kira
Dua perintah ganti digunakan dalam perintah `sed` berikut. Di sini, teksnya, ‘ Kira ‘Akan digantikan oleh 100 dalam baris yang mengandungi teks, ‘CSE 'Dan teksnya,' Kira ’ akan digantikan oleh 70 dalam baris yang mengandungi corak pencarian, ‘ EEE ’ .
$kucingdept.txt$sed -Dan '/ CSE / s / Count / 100 /; / EEE / s / Count / 70 /; 'dept.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
10. Teks pengganti tetapi hanya jika beberapa teks lain tidak dijumpai dalam rentetan
Perintah `sed` berikut akan menggantikan nilai‘ Count ’pada baris yang tidak mengandungi teks,‘ CSE ’. dept.txt fail mengandungi dua baris yang tidak mengandungi teks, 'CSE'. Jadi ' Kira Teks akan digantikan oleh 80 dalam dua baris.
$kucingdept.txt$sed -i -Dan '/ CSE /! s / Kiraan / 80 /; 'dept.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
11. Tambahkan rentetan sebelum dan selepas corak pemadanan menggunakan ‘ 1’
Urutan pola padanan arahan `sed` dilambangkan dengan ' 1', ' 2' dan seterusnya. Perintah `sed` berikut akan mencari corak, 'Bash' dan jika corak sesuai maka akan diakses oleh ' 1 ′ di bahagian penggantian teks. Di sini, teks, ‘Bash’ dicari dalam teks input dan, satu teks ditambahkan sebelumnya dan teks lain ditambahkan setelah ‘ 1’.
$membuang 'Bahasa Bash' | sed 's / (Bash ) / Belajar 1 pengaturcaraan /'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, ‘ Belajar ’ teks ditambah sebelum ini ‘Bash’ dan ‘ pengaturcaraan 'Teks ditambahkan selepas' Tewas ’.
12. Padamkan garis padanan
‘D’ pilihan digunakan dalam perintah `sed` untuk menghapus sebarang baris dari fail. Buat fail bernama os.txt dan tambahkan kandungan berikut untuk menguji fungsi ‘D’ pilihan.
kucing os.txt
TingkapLinux
Android
ANDA
Perintah `sed` berikut akan menghapus baris dari os.txt fail yang mengandungi teks, ‘OS’.
$kucingos.txt$sed '/ D'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
13. Padamkan garis padanan dan 2 baris selepas garis padanan
Perintah berikut akan menghapus tiga baris dari fail os.txt jika corak, ' Linux ’ dijumpai. os.txt mengandungi teks, ‘Linux ‘Di baris kedua. Jadi, baris ini dan dua baris seterusnya akan dipadamkan.
$sed '/ Linux /, + 2d'os.txtPengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
14. Padamkan semua ruang di hujung baris teks
Menggunakan [: kosong:] kelas boleh digunakan untuk membuang ruang dan tab dari teks atau kandungan fail apa pun. Perintah berikut akan membuang ruang di hujung setiap baris fail, os.txt.
$kucingos.txt$sed 's / [[: kosong:]] * $ //'os.txt
Pengeluaran:
os.txt mengandungi baris kosong selepas setiap baris yang dihapuskan dengan perintah `sed` di atas.
15. Padamkan semua garisan yang mempunyai pertandingan dua kali di garisan
Buat fail teks bernama, input.txt dengan kandungan berikut dan hapuskan baris fail yang mengandungi corak pencarian dua kali.
input.txt
PHP adalah bahasa skrip sisi pelayan.
PHP adalah bahasa sumber terbuka dan PHP peka huruf besar kecil.
PHP tidak bergantung kepada platform.
Teks ‘PHP’ mengandungi dua kali pada baris kedua fail, input.txt . Dua arahan `sed` digunakan dalam contoh ini untuk membuang garis-garis yang mengandungi corak ' php ' dua kali. Perintah `sed` pertama akan menggantikan kejadian kedua‘ php ’di setiap baris dengan‘ dl 'Dan hantar output ke perintah `sed` kedua sebagai input. Perintah `sed` kedua akan menghapus baris yang mengandungi teks, ' dl '.
$kucinginput.txt$sed 's / php / dl / i2; t'input.txt| sed '/ dl / d'
Pengeluaran:
input.txt fail mempunyai dua baris yang mengandungi corak, ‘Php’ dua kali. Jadi, output berikut akan muncul setelah menjalankan perintah di atas.
16. Padamkan semua garisan yang hanya mempunyai ruang putih
Pilih mana-mana fail yang mengandungi baris kosong dalam kandungan untuk menguji contoh ini. input.txt fail yang dibuat dalam contoh sebelumnya, mengandungi dua baris kosong yang dapat dihapus dengan menggunakan perintah `sed` berikut. Di sini, ‘^ $’ digunakan untuk mengetahui baris kosong dalam fail, input.txt.
$kucinginput.txt$sed '/ ^ $ / d'input.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
17. Padamkan semua watak yang tidak boleh dicetak
Aksara yang tidak boleh dicetak dapat dihapus dari teks mana pun dengan menggantikan watak yang tidak dapat dicetak dengan tidak ada. [: print:] class digunakan dalam contoh ini untuk mengetahui watak yang tidak boleh dicetak. ‘ T’ adalah watak yang tidak dapat dicetak dan tidak dapat dihuraikan secara langsung oleh perintah `echo`. Untuk ini, watak ' t' diberikan dalam pemboleh ubah, tab $ yang digunakan dalam perintah `echo`. Keluaran perintah `echo` dihantar dalam perintah` sed` yang akan mengeluarkan watak, ' t' dari output.
$tab= $' t'$membuang 'Helo$ tabWorld'
$membuang 'Helo$ tabWorld' | sed 's / [^ [: cetak:]] // g'
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Perintah `echo pertama akan mencetak output dengan ruang tab dan perintah` sed` akan mencetak output setelah mengeluarkan ruang tab.
18. Sekiranya ada perlawanan dalam baris, tambahkan sesuatu ke hujung baris
Perintah berikut akan menambahkan ‘10’ di hujung baris yang mengandungi teks, ‘Windows’ di os.txt fail.
$kucingos.txt$sed '/ Windows / s / $ / 10 /'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah.
19. Sekiranya terdapat padanan dalam baris masukkan baris sebelum teks
Perintah `sed` berikut akan mencari teks, ' PHP tidak bergantung kepada platform ’ di dalam input.txt fail yang dibuat sebelum ini. Sekiranya fail mengandungi teks ini di baris mana pun, ' PHP adalah bahasa yang ditafsirkan ' akan dimasukkan sebelum garis itu.
$kucinginput.txt$sed '/ PHP tidak bergantung pada platform / s / ^ / PHP adalah bahasa yang ditafsirkan. N /'input.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
20. Sekiranya terdapat padanan di garisan masukkan garis selepas garis itu
Perintah `sed` berikut akan mencari teks, ' Linux ’ dalam fail os.txt dan jika teks itu ada di mana-mana baris maka teks baru, ' Ubuntu 'Akan dimasukkan selepas garis itu.
$kucingos.txt$sed / Linux / & nUbuntu / 'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
21. Sekiranya tidak ada perlawanan, tambahkan sesuatu ke hujung baris
Perintah `sed` berikut akan mencari baris di os.txt yang tidak mengandungi teks, ‘Linux’ dan tambahkan teksnya, ‘ Sistem operasi 'Pada akhir setiap baris. Di sini, ‘ $ Simbol digunakan untuk mengenal pasti garis di mana teks baru akan ditambahkan.
$kucingos.txt$sed '/ Linux /! S / $ / Sistem Operasi / 'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Terdapat tiga baris dalam file os.txt yang tidak mengandungi teks, 'Linux' dan teks baru yang ditambahkan pada akhir baris ini.
22. Sekiranya tidak ada padanan hapus baris
Buat fail bernama web.txt dan tambahkan kandungan berikut dan hapus baris yang tidak mengandungi corak yang sepadan. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Perintah `sed` berikut akan mencari dan menghapus baris yang tidak mengandungi teks, 'CSS'. $ cat web.txt $ sed '/ CSS /! d' web.txt Pengeluaran: Output berikut akan muncul setelah menjalankan perintah di atas. Terdapat satu baris dalam fail yang mengandungi teks, 'CSE'. Jadi, output hanya mengandungi satu baris.
23. Gandakan teks yang dipadankan setelah menambahkan ruang selepas teks
Perintah `sed` berikut akan mencari perkataan, 'ke' dalam fail, python.txt dan jika perkataan itu ada maka perkataan yang sama akan dimasukkan setelah kata carian dengan menambahkan ruang. Di sini, '&' simbol digunakan untuk menambahkan teks pendua.
$kucingpython.txt$sed -Dan 's / ke / & ke / g'python.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah. Di sini, perkataan 'ke' dicari dalam fail, python.txt dan perkataan ini wujud di baris kedua fail ini. Jadi, 'Ke 'Dengan ruang ditambahkan selepas teks yang sepadan.
24. Ganti satu senarai rentetan dengan rentetan baru
Anda mesti membuat dua fail senarai untuk menguji contoh ini. Buat fail teks bernama senarai1.txt dan tambahkan kandungan berikut.
senarai kucing1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Buat fail teks bernama senarai2.txt dan tambahkan kandungan berikut.
$ cat list2.txt
1001IPK CSE3.631002IPK CSE3.24
1023IPK CSE3.11
1067IPK CSE3.84
Perintah `sed` berikut akan sesuai dengan lajur pertama dari dua fail teks yang ditunjukkan di atas dan menggantikan teks yang sesuai dengan nilai lajur ketiga fail senarai1.txt.
$kucingsenarai1.txt$kucingsenarai2.txt
$sed 'kucingsenarai1.txt| awk '{print' -e dengan / '$ 1' / '$ 3' / '}''<<<'`cat list2.txt`'
Pengeluaran:
1001, 1023 dan 1067 dari senarai1.txt padanan fail dengan tiga data senarai2.txt fail dan nilai-nilai ini digantikan dengan nama yang sesuai dari lajur ketiga dari senarai1.txt .
25. Ganti rentetan yang dipadankan dengan tali yang mengandungi baris baru
Perintah berikut akan mengambil input dari perintah `echo` dan mencari kata, ‘Python’ dalam teks. Sekiranya perkataan itu ada dalam teks maka teks baru, 'Teks yang Ditambah' akan disisipkan dengan barisan baru. $ echo Bash Perl Python Java PHP ASP | sed 's / Python / Teks Ditambah n /' Pengeluaran: Output berikut akan muncul setelah menjalankan perintah di atas.
26. Keluarkan baris baru dari fail dan masukkan koma di hujung setiap baris
Perintah `sed` berikut akan menggantikan setiap baris baru dengan koma dalam fail os.txt . Di sini, -Dengan pilihan digunakan untuk memisahkan garis dengan watak NULL.
$sed -Dengan 's / n /, / g'os.txtPengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
27. Keluarkan koma dan tambahkan baris baru untuk memisahkan teks menjadi beberapa baris
Perintah `sed` berikut akan mengambil baris yang dipisahkan koma dari perintah` echo` sebagai input dan menggantikan koma dengan baris baru.
$membuang 'Kaniz Fatema, 30, kumpulan' | sed / / / n/ g 'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Teks input mengandungi tiga data yang dipisahkan koma yang digantikan oleh baris baru dan dicetak dalam tiga baris.
28. Cari padanan dan hapus baris yang tidak sensitif
‘I’ digunakan dalam perintah `sed` untuk padanan tidak peka huruf besar-kecil yang menunjukkan kes abaikan. Perintah `sed` berikut akan mencari baris yang mengandungi perkataan, ‘Linux 'Dan hapuskan baris dari os.txt fail.
$kucingos.txt$sed '/ linux / Id'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. os.txt mengandungi kata, 'Linux' yang sesuai dengan corak, 'linux' untuk carian tanpa huruf besar-kecil dan dihapus.
29. Cari padanan tidak peka huruf besar dan ganti dengan teks baru
Perintah `sed` berikut akan mengambil input dari perintah` gema` dan menggantikan perkataan, 'bash' dengan kata, 'PHP'.
$membuang 'Saya suka pengaturcaraan bash' | sed / Bash / PHP / i 'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, kata, 'Bash' dipadankan dengan kata, 'bash' untuk carian tanpa huruf besar-kecil dan digantikan dengan kata, 'PHP'.
30. Cari padanan tidak peka huruf besar dan ganti dengan huruf besar semua teks yang sama
‘ U’ digunakan dalam `sed` untuk menukar teks ke semua huruf besar. Perintah `sed` berikut akan mencari perkataan, ‘Linux ' di dalam os.txt fail dan jika perkataan itu ada maka ia akan menggantikan perkataan itu dengan semua huruf besar.
$kucingos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Perkataan, ‘Linux’ dari fail os.txt digantikan dengan perkataan, ‘LINUX’.
31. Cari padanan tidak sensitif huruf besar dan ganti dengan semua huruf kecil teks yang sama
'' digunakan dalam `sed` untuk menukar teks ke semua huruf kecil. Perintah `sed` berikut akan mencari perkataan, ‘Linux’ di dalam os.txt fail dan ganti perkataan dengan semua huruf kecil.
$kucingos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Perkataan, ‘Linux’ digantikan dengan perkataan, ‘linux’ di sini.
32. Gantikan semua huruf besar teks dengan huruf kecil
Perintah `sed` berikut akan mencari semua huruf besar di os.txt fail dan ganti watak dengan huruf kecil dengan menggunakan ' L'.
$kucingos.txt$sed 's / (. * ) / L 1 /'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
33. Cari nombor dalam baris dan tambahkan sebarang simbol mata wang sebelum nombor
Buat fail bernama item.txt dengan kandungan berikut.
item.txt
HDD 100Monitor 80
Tetikus 10
Perintah `sed` berikut akan mencari nombor di setiap baris item.txt fail dan tambahkan simbol mata wang, '$' sebelum setiap nombor.
$kucingitem.txt$sed 's / ([0-9] ) / $ 1 / g'item.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, simbol '$' ditambahkan sebelum bilangan setiap baris.
34. Tambahkan koma ke nombor yang mempunyai lebih daripada 3 digit
Perintah `sed` berikut akan mengambil nombor sebagai input dari perintah` echo` dan menambahkan koma setelah setiap kumpulan tiga digit dikira dari kanan. Di sini, ‘: a’ menunjukkan label dan ‘ta’ digunakan untuk melancarkan proses pengelompokan.
$membuang '5098673' | sed -Dan: ke-Dan 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Pengeluaran:
Nombor 5098673 diberikan dalam perintah `echo` dan perintah` sed` menghasilkan nombor 5,098,673 dengan menambahkan koma setelah setiap kumpulan tiga digit.
35. Menggantikan watak tab dengan 4 watak ruang
Perintah `sed` berikut akan menggantikan setiap tab ( t) watak dengan empat watak ruang. Simbol ‘$’ digunakan dalam perintah `sed` untuk mencocokkan watak tab dan‘ g ’digunakan untuk menggantikan semua watak tab.
$membuang -Dan '1 t2 t3 ' | sed$'s / t / / g'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
36. Menggantikan 4 watak ruang berturut-turut dengan watak tab
Perintah berikut akan menggantikan 4 watak berturut-turut dengan watak tab ( t).
$membuang -Dan '1 2' | sed$'s / / t / g'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
37. Potong semua baris kepada 80 aksara pertama
Buat fail teks bernama dalam.txt yang mengandungi baris lebih daripada 80 aksara untuk menguji contoh ini.
dalam.txt
PHP adalah bahasa skrip sisi pelayan.
PHP adalah bahasa sumber terbuka dan PHP peka huruf besar kecil. PHP tidak bergantung kepada platform.
Perintah `sed` berikut akan memotong setiap baris dalam.txt failkan menjadi 80 aksara.
$sed 's / (^. {1,80 } ). * / 1 /'dalam.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Baris kedua dalam fail in.txt mengandungi lebih daripada 80 aksara dan baris ini dipotong dalam output.
38. Cari rentetan regex dan tambahkan beberapa teks standard selepasnya
Perintah `sed` berikut akan mencari teks, ' hello 'Dalam teks input dan tambahkan teks,' John 'Selepas teks itu.
$membuang 'halo, apa khabar?' | sed 's / (halo ) / 1 John /'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
39. Cari string regex dan tambahkan beberapa teks selepas perlawanan kedua di setiap baris
Perintah `sed` berikut akan mencari teks, ' PHP 'Di setiap baris input.txt dan ganti pertandingan kedua di setiap baris dengan teks, 'Teks Baru Ditambah' .
$kucinginput.txt$sed 's / (PHP ) / 1 (Teks Baru ditambahkan) / 2'input.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Teks carian, ' PHP Muncul dua kali pada baris kedua dan ketiga input.txt fail. Jadi, teksnya, ‘ Teks baru ditambah ’Dimasukkan pada baris kedua dan ketiga.
40. Menjalankan skrip `sed` berbilang baris dari fail
Beberapa skrip `sed` dapat disimpan dalam fail dan semua skrip dapat dijalankan bersama dengan menjalankan perintah` sed`. Buat fail bernama ‘Sedcmd 'Dan tambahkan kandungan berikut. Di sini, dua skrip `sed` ditambahkan dalam fail. Satu skrip akan menggantikan teks, ‘ PHP Oleh ‘ASP 'Skrip lain akan menggantikan teks,' bebas 'Oleh teks,' bergantung '.
sedcmd
s/PHP/ASP/s/bebas/bergantung/
Perintah `sed` berikut akan menggantikan semua teks‘ PHP ’dan‘ bebas ’dengan‘ ASP ’dan‘ bergantung ’. Di sini, pilihan ‘-f’ digunakan dalam perintah `sed` untuk melaksanakan skrip` sed` dari fail.
$kucingsedcmd$sed -fsedcmd input.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
41. Padankan corak berbilang baris dan ganti dengan teks berbilang baris baru
Perintah `sed` berikut akan mencari teks pelbagai baris, ‘Linux nAndroid’ dan jika coraknya sepadan maka garis yang sesuai akan digantikan oleh teks berbilang baris, ‘Ubuntu nAndroid Lollipop '. Di sini, P dan D digunakan untuk pemprosesan multiline.
$kucingos.txt$sed '$! N; s / Linux nAndoid / Ubuntu nAndoid Lollipop /; P; D'os.txt
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
42. Gantikan susunan dua perkataan dalam teks yang sesuai dengan corak
Perintah `sed` berikut akan mengambil input dua perkataan dari perintah` echo` dan menggantikan susunan kata-kata ini.
$membuang 'perl python' | sed -Dan 's / ([^] * ) * ([^] * ) / 2 1 /'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
43. Laksanakan pelbagai perintah `sed` dari baris perintah
Pilihan ‘-e’ digunakan dalam perintah `sed` untuk menjalankan beberapa skrip` sed` dari baris perintah. Perintah `sed` berikut akan mengambil teks sebagai input dari perintah` echo` dan menggantikan ' Ubuntu 'Oleh' Kubuntu 'Dan' beratus-ratus 'Oleh' Fedora '.
$membuang 'Ubuntu Centos Debian' | sed -Dan / Ubuntu / Kubuntu /; s / Centos / Fedora / 'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Di sini, ‘Ubuntu’ dan ‘Centos’ digantikan dengan ‘Kubuntu’ dan ‘Fedora’.
44. Gabungkan `sed` dengan perintah lain
Perintah berikut akan menggabungkan perintah `sed` dengan perintah` cat`. Perintah `sed` pertama akan mengambil input dari os.txt fail dan hantarkan output arahan ke perintah `sed` kedua setelah menggantikan teks '' Linux 'dengan' Fedora '. Perintah `sed` kedua akan menggantikan teks,‘ Windows ’dengan‘ Windows 10 ’.
$kucingos.txt| sed 's / Linux / Fedora /'| sed Windows / Windows 10 / i 'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
45. Masukkan baris kosong dalam fail
Buat fail bernama senarai nama dengan kandungan berikut.
senarai nama
#ID #Nama[101] -Tetapi
[102] -Neha
Pilihan ‘G’ digunakan untuk memasukkan baris kosong dalam fail. Perintah `sed` berikut akan memasukkan baris kosong selepas setiap baris senarai nama fail.
$kucingsenarai nama$sedSenarai senarai
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Garis kosong dimasukkan selepas setiap baris fail.
46. Ganti semua watak alfa-angka dengan ruang di setiap baris fail.
Perintah berikut akan menggantikan semua aksara alfa-angka dengan ruang di senarai nama fail.
$kucingsenarai nama$ tetapi 's / [A-Za-z0-9] // g'senarai nama
Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
47. Gunakan '&' untuk mencetak tali yang dipadankan
Perintah berikut akan mencari perkataan bermula dengan 'L' dan menggantikan teks dengan menambahkan 'String yang sesuai ialah - ‘Dengan perkataan yang sesuai dengan menggunakan simbol‘ & ’. Di sini, ‘p’ digunakan untuk mencetak teks yang diubah.
$sed -n String / s / ^ L / Matched adalah - & / p 'os.txtPengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas.
48. Tukar pasangan perkataan dalam fail
Buat fail teks bernama kursus.txt dengan kandungan berikut yang mengandungi sepasang kata di setiap baris.
kursus.txt
ASP PHPMySQL Oracle
CodeIgniter Laravel
Perintah berikut akan menukar sepasang kata di setiap baris fail, kursus.txt .
$sed 's / ([^] * ) * ([^] * ) / 2 1 /'kursus.txtPengeluaran:
Output berikut akan muncul setelah menukar pasangan kata di setiap baris.
49. Huruf besar huruf pertama setiap perkataan
Perintah `sed` berikut akan mengambil teks input dari perintah` echo` dan menukar watak pertama setiap kata menjadi huruf besar.
$membuang 'Saya suka pengaturcaraan bash' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Pengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Teks input, saya suka pengaturcaraan bash dicetak sebagai Saya Suka Pengaturcaraan Bash setelah menggunakan huruf pertama.
50. Cetak nombor baris fail
Simbol ‘=’ digunakan perintah `sed` untuk mencetak nombor baris sebelum setiap baris fail. Perintah berikut akan mencetak kandungan os.txt fail dengan nombor baris.
$sed '='os.txtPengeluaran:
Output berikut akan muncul setelah menjalankan perintah di atas. Terdapat empat baris di os.txt fail. Jadi, nombor baris dicetak sebelum setiap baris fail.
Kesimpulan:
Penggunaan perintah `sed` yang berbeza dijelaskan dalam tutorial ini dengan menggunakan contoh yang sangat mudah. Keluaran semua skrip `sed` yang disebutkan di sini dihasilkan sementara dan kandungan fail asal tidak berubah. Tetapi jika anda mahu, anda boleh mengubahsuai fail asalnya dengan menggunakan –i atau –di-place pilihan `sed command. Sekiranya anda pengguna Linux baru dan ingin mempelajari penggunaan asas arahan `sed` untuk melakukan pelbagai jenis tugas manipulasi tali, maka tutorial ini akan membantu anda. Setelah membaca tutorial ini, harap, setiap pengguna akan mendapat konsep yang jelas mengenai fungsi perintah `sed`.
Soalan Lazim
Untuk apa perintah sed digunakan?
Perintah sed mempunyai beberapa kegunaan yang berbeza. Yang dikatakan, penggunaan utama adalah untuk mengganti kata dalam fail, atau mencari dan mengganti.
Perkara hebat mengenai sed ialah anda boleh mencari perkataan dalam fail dan menggantinya, tetapi anda tidak perlu membuka fail itu - sed hanya melakukan semuanya untuk anda!
Selain itu, ia boleh digunakan untuk penghapusan. Yang perlu anda lakukan ialah menaip perkataan yang ingin anda cari, ganti atau hapus menjadi sed, dan ia membawanya - anda kemudian boleh memilih untuk mengganti perkataan itu atau menghapus semua jejak kata dari fail anda.
sed adalah alat yang hebat untuk dapat mengganti perkara seperti alamat IP dan apa-apa yang sangat sensitif yang anda tidak mahu masukkan ke dalam fail. sed adalah yang mesti diketahui oleh mana-mana jurutera perisian!
Apakah perintah S dan G dalam sed?
Dalam istilah yang paling mudah, fungsi S yang dapat digunakan dalam sed bermaksud 'pengganti'. Selepas menaip S anda boleh mengganti atau mengganti apa sahaja yang anda mahukan - hanya dengan menaip S hanya akan menggantikan kejadian pertama perkataan pada baris.
Oleh itu, jika anda mempunyai ayat atau baris yang menyebutnya lebih dari sekali, fungsi S tidak sesuai kerana hanya akan menggantikan kejadian pertama. Anda boleh menentukan corak untuk menjadikan S menggantikan perkataan setiap dua kejadian juga.
Menentukan G pada akhir perintah sed akan melakukan penggantian global (itulah yang dimaksudkan oleh G). Dengan ini, jika anda menentukan G, ia akan menggantikan setiap kejadian kata yang anda pilih, dan bukan hanya kejadian pertama yang dilakukan oleh S.
Bagaimana saya menjalankan skrip sed?
Anda boleh menjalankan skrip sed dengan beberapa cara tetapi yang paling biasa adalah pada baris perintah. Di sini anda boleh menentukan sed dan fail yang anda mahu gunakan perintahnya.
Ini membolehkan anda menggunakan sed pada fail tersebut, memungkinkan anda mencari, menghapus dan mengganti mengikut keperluan.
Anda juga dapat menggunakannya dalam skrip shell, dan dengan cara ini anda dapat meneruskan apa sahaja yang anda mahukan ke skrip, dan ia akan menjalankan perintah cari dan ganti untuk anda. Ini berguna kerana tidak mahu menentukan data yang sangat sensitif di dalam skrip, jadi anda boleh menyebarkannya sebagai pemboleh ubah
Ingatlah bahawa ini tentu saja hanya tersedia di Linux, dan oleh itu anda perlu memastikan anda mempunyai baris perintah Linux untuk menjalankan skrip sed anda.