Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk menggantikan rentetan dalam fail dalam linux
Di Linux, anda boleh menggunakan arahan sed untuk mencari dan menggantikan rentetan dalam fail Arahan ini menggunakan mod penyuntingan strim dan boleh memadankan dan memproses data dalam fail teks berdasarkan ungkapan biasa ialah: "sed 's/rentetan atau ungkapan biasa untuk mencari/nilai ganti/g' nama fail untuk melaksanakan operasi pada".
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Apabila anda bekerja dengan fail teks, kemungkinan besar anda perlu mencari dan menggantikan rentetan dalam fail. Di Linux ini boleh dilakukan dengan menggunakan arahan sed, yang digunakan terutamanya untuk menggantikan teks dalam fail.
Apakah arahan sed itu? Ia boleh melakukan pelbagai fungsi seperti mencari, mencari, mengubah suai, memasukkan atau memadam fail. Arahan sed menggunakan mod penyuntingan strim dan boleh melakukan padanan ungkapan biasa yang kompleks.
Arahan sed sepadan dan memproses data dalam fail teks berdasarkan ungkapan biasa.
Ia boleh digunakan untuk tujuan berikut:
Cari dan gantikan kandungan yang sepadan dengan format yang diberikan.
Cari dan gantikan kandungan yang sepadan dengan format yang diberikan dalam baris yang ditentukan.
Cari dan gantikan semua baris yang sepadan dengan format yang diberikan.
Cari dan gantikan dua corak berbeza pada masa yang sama.
Sintaks sed biasa untuk menggantikan rentetan.
Mula-mula kita perlu memahami sintaks sed untuk melakukan ini. Lihat butiran.sed -i 's/Search_String/Replacement_String/g' Input_File
sed: Ini ialah arahan Linux.
-i: Ini adalah pilihan bagi arahan sed. Secara lalai, sed mencetak hasil ke output standard. Apabila anda menambah pilihan ini menggunakan sed maka ia akan mengubah suai fail di tempatnya. Apabila anda menambah akhiran (contohnya, -i.bak), sandaran fail asal dibuat.
s: Huruf s ialah perintah penggantian.
Search_String: Cari rentetan atau ungkapan biasa yang diberikan.
Replacement_String: Rentetan penggantian.
g: bendera gantian global. Secara lalai, arahan sed menggantikan kejadian pertama corak pada setiap baris; ia tidak menggantikan padanan lain dalam baris. Walau bagaimanapun, apabila bendera gantian disediakan, semua perlawanan akan diganti.
/: pembatas.
Input_File: Nama fail untuk menjalankan operasi.
Mari kita lihat beberapa contoh biasa menggunakan arahan sed untuk mencari dan menukar teks dalam fail.
1) Cara mencari dan menggantikan padanan corak "pertama" dalam setiap baris
# cat sed-test.txt 1 Unix unix unix 23 2 linux Linux 34 3 linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
Arahan sed di bawah menggantikan unix dalam fail dengan linux. Ini hanya mengubah contoh pertama corak setiap baris.
2) Bagaimana untuk mencari dan menggantikan kejadian "Nth" bagi corak dalam setiap baris
# sed 's/unix/linux/' sed-test.txt 1 Unix linux unix 23 2 linux Linux 34 3 linuxlinux UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
Gunakan /1, /2.../ dalam garisan n dan bendera lain untuk menggantikan perlawanan yang sepadan. Arahan sed berikut menggantikan contoh kedua mod unix dengan linux pada baris.
3) Bagaimana untuk mencari dan menggantikan semua contoh corak dalam setiap baris
# sed 's/unix/linux/2' sed-test.txt 1 Unix unix linux 23 2 linux Linux 34 3 linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
Arahan sed berikut menggantikan semua contoh format unix dengan linux kerana g ialah Bendera pengganti global.
4) Bagaimana untuk mencari dan menggantikan semua contoh corak yang sepadan bermula dari "Nth" dalam baris
# sed 's/unix/linux/g' sed-test.txt 1 Unix linux linux 23 2 linux Linux 34 3 linuxlinux UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
Arahan sed berikut menggantikan dalam contoh Padanan baris bermula dari kedudukan "Nth" corak.
Cadangan berkaitan: "Tutorial Video Linux
"# sed 's/unix/linux/2g' sed-test.txt 1 Unix unix linux 23 2 linux Linux 34 3 linuxunix UnixLinux linux /bin/bash CentOS Linux OS Linux is free and opensource operating system
Atas ialah kandungan terperinci Bagaimana untuk menggantikan rentetan dalam fail dalam linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!