50 `tetapi` Contoh Perintah

50 Sed Command Examples



`sed` adalah ciri pemprosesan teks yang berguna dari GNU / Linux. Bentuk lengkap `sed` adalah Stream Editor. Banyak jenis tugas pemprosesan teks yang mudah dan rumit dapat dilakukan dengan sangat mudah dengan menggunakan perintah `sed`. String tertentu dalam teks atau file dapat dicari, diganti dan dihapus dengan menggunakan ekspresi reguler dengan perintah `sed. Tetapi perintah ini melakukan semua jenis pengubahsuaian buat sementara waktu dan kandungan fail asal tidak diubah secara lalai. Pengguna boleh menyimpan kandungan yang diubah suai ke dalam fail lain jika perlu. Penggunaan asas arahan `sed` dijelaskan dalam tutorial ini dengan menggunakan 50 contoh unik. Sebelum memulakan tutorial ini, anda mesti menyemak versi` sed` yang terpasang di sistem operasi anda dengan menjalankan perintah berikut. Tutorial ini dirancang berdasarkan GNU sed. Jadi versi `sed` ini diperlukan untuk mempraktikkan contoh yang ditunjukkan dalam tutorial ini.

$sed - penukaran

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 :

  1. Penggantian teks asas menggunakan ‘sed’
  2. Ganti semua contoh teks dalam baris fail tertentu dengan menggunakan pilihan 'g'
  3. Gantikan kejadian kedua hanya perlawanan pada setiap baris
  4. Ganti kejadian terakhir hanya pada perlawanan pada setiap baris
  5. Gantikan padanan pertama dalam fail dengan teks baru
  6. Ganti padanan terakhir dalam fail dengan teks baru
  7. Melarikan garis miring balik dalam perintah ganti untuk menguruskan carian dan penggantian laluan fail
  8. Ganti semua fail penuh dengan hanya nama fail tanpa direktori
  9. Teks pengganti tetapi hanya jika beberapa teks lain terdapat dalam rentetan
  10. Teks pengganti tetapi hanya jika beberapa teks lain tidak dijumpai dalam rentetan
  11. Tambahkan rentetan sebelum selepas corak pemadanan menggunakan ‘ 1 '
  12. Padamkan garis yang sepadan
  13. Padamkan garis padanan dan 2 baris selepas garis padanan
  14. Padamkan semua ruang di hujung baris teks
  15. Padamkan semua baris yang mempunyai pertandingan dua kali pada baris
  16. Padamkan semua baris yang mempunyai satu-satunya ruang kosong
  17. Padamkan semua watak yang tidak boleh dicetak
  18. Sekiranya ada pertandingan dalam baris, tambahkan sesuatu ke hujung baris
  19. Sekiranya terdapat perlawanan di baris masukkan baris sebelum perlawanan
  20. Sekiranya terdapat perlawanan di baris masukkan baris selepas perlawanan
  21. Sekiranya tidak ada perlawanan, tambahkan sesuatu ke hujung baris
  22. Sekiranya tidak ada padanan hapus baris
  23. Gandakan teks yang dipadankan setelah menambahkan ruang selepas teks
  24. Ganti salah satu senarai rentetan dengan rentetan baru
  25. Ganti rentetan yang dipadankan dengan tali yang mengandungi baris baru
  26. Keluarkan baris baru dari fail dan masukkan koma di hujung setiap baris
  27. Keluarkan koma dan tambahkan baris baru untuk memisahkan teks menjadi beberapa baris
  28. Cari padanan dan padamkan huruf yang tidak sensitif
  29. Cari padanan tidak sensitif huruf besar dan ganti dengan teks baru
  30. Cari padanan tidak sensitif huruf besar dan ganti dengan huruf besar semua teks yang sama
  31. Cari padanan tidak sensitif huruf besar dan ganti dengan semua huruf kecil teks yang sama
  32. Ganti semua huruf besar dalam teks dengan huruf kecil
  33. Cari nombor dalam baris dan tambahkan simbol mata wang selepas nombor tersebut
  34. Tambahkan koma ke nombor yang mempunyai lebih daripada 3 digit
  35. Gantikan watak tab dengan 4 watak ruang
  36. Gantikan 4 watak ruang berturut-turut dengan watak tab
  37. Potong semua baris menjadi 80 aksara pertama
  38. Cari rentetan regex dan tambahkan beberapa teks standard selepasnya
  39. Cari rentetan string dan salinan kedua rentetan yang dijumpai selepasnya
  40. Menjalankan skrip `sed` berbilang baris dari fail
  41. Padankan corak berbilang baris dan ganti dengan teks berbilang baris baru
  42. Gantikan susunan dua perkataan yang sesuai dengan corak
  43. Gunakan pelbagai arahan sed dari baris perintah
  44. Gabungkan sed dengan arahan lain
  45. Masukkan baris kosong dalam fail
  46. Padamkan semua watak alfa-angka dari setiap baris fail.
  47. Gunakan ‘&’ untuk memadankan rentetan
  48. Tukar pasangan perkataan
  49. Huruf besar huruf pertama setiap perkataan
  50. 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

Isnin
Selasa
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.

Pergi ke 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’.

Pergi ke atas

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.txt

Pengeluaran:

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 '.

Pergi ke atas

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.

$sed Pengaturcaraan / (. * ) / 1krip / /lang.txt

Pergi ke atas

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'.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke 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.

Pergi ke atas

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 - Kira
EEE - 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.

Pergi ke 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.

Pergi ke 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 ’.

Pergi ke atas

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

Tingkap
Linux
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.

Pergi ke 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.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah di atas.

Pergi ke 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.

Pergi ke 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.

Pergi ke 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.

Pergi ke 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.

Pergi ke atas

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.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke 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.

Pergi ke atas

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.

Pergi ke atas

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.

Pergi ke atas

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 Ali
1023=>Nir Hossain
1067=>John michel

Buat fail teks bernama senarai2.txt dan tambahkan kandungan berikut.

$ cat list2.txt

1001IPK CSE3.63
1002IPK 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 .

Pergi ke atas

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.

Pergi ke 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.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah di atas.

Pergi ke 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.

Pergi ke atas

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.

Pergi ke atas

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'.

Pergi ke atas

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’.

Pergi ke atas

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.

Pergi ke atas

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.

Pergi ke 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 100
Monitor 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.

Pergi ke atas

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.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke 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.

$kucingdalam.txt
$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.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke 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.

Pergi ke 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’.

Pergi ke atas

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.

Pergi ke 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.

Pergi ke atas

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.

Pergi ke 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.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah di atas.

Pergi ke 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 PHP
MySQL Oracle
CodeIgniter Laravel

Perintah berikut akan menukar sepasang kata di setiap baris fail, kursus.txt .

$sed 's / ([^] * ) * ([^] * ) / 2 1 /'kursus.txt

Pengeluaran:

Output berikut akan muncul setelah menukar pasangan kata di setiap baris.

Pergi ke atas

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.

Pergi ke atas

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.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah di atas. Terdapat empat baris di os.txt fail. Jadi, nombor baris dicetak sebelum setiap baris fail.

Pergi ke atas

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.