Perintah "sed" dalam Sistem Pengoperasian Percuma jenis GNU / Linux, ia merupakan perintah yang sangat serba boleh, kerana pada gilirannya Ia dianggap sebagai penyunting teks yang berorientasi pada "aliran" dan bukannya "interaktif" seperti yang biasa, kerana ia menerima fail atau input standard sebagai input, kemudian memproses setiap baris dan hasilnya dikirim ke output standar. Maksudnya, SED (Stream EDitor) memungkinkan kita mengubah isi baris fail yang berlainan berdasarkan rangkaian perintah atau fail arahan.
Secara amnya, arahan «sed» digunakan sebagai penapis, kerana membaca setiap baris entri data anda dan kemudian melakukan tindakan yang diminta yang biasanya dibaca, diekstrak, diubah suai dan ditunjukkan atau disimpan. Walaupun kekuatannya sedemikian rupa ini juga membolehkan kita dengan cara yang selesa, hapus baris, rekod atau ganti rentetan watak dalam baris fail.
Pengenalan kepada perintah "sed"
Sudah dalam penerbitan lain sebelum ini di DesdeLinux kami telah bercakap dan menunjukkan contoh tentang penggunaan arahan tersebut, seperti: Cara menghapus baris tertentu dari fail ... y Dengan Terminal: Menggunakan Ungkapan Biasa II: Penggantian, jadi kali ini kita akan melihat secara langsung sedikit lebih maju dan sama seperti contoh praktikal menggunakannya.
Pada dasarnya arahan «sed» mempunyai sintaks berikut:
sed comandos_sed archivo
di mana "Perintah_sed" sesuai dengan satu atau lebih spesifikasi mengenai apa yang harus dilakukan dengan baris yang dibaca "arkib".
Penggunaan yang lebih meluas menjadikan kita dengan sintaks berikut:
sed [-ns] '[direccion] instruccion argumentos'
Donde:
Contoh praktikal
Senaraikan Fail / Folder di jalan
Baris arahan berguna yang dapat digunakan untuk menyenaraikan isi jalur X yang ditunjukkan dan kemudian mengesan / mengira / menapis item yang dicari dan menunjukkan tindakan selanjutnya yang akan dilakukan.
ls -l | awk '{ print $NF }' | sed 1d
Contoh:
Varian lain yang menggunakan perintah "sed" sangat berguna:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Buat urutan nombor
Paparkan di skrin atau simpan dalam fail urutan numerik (atau input lain) yang dibuat tetapi dengan cara mendatar (linier) dan bukan menegak yang kemudian dapat dibaca untuk proses lain.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Contoh yang sama dapat dilakukan dengan menggabungkan perintah «dahaga " dengan "Printf" seperti yang ditunjukkan di bawah:
printf '%s ' {1..100}|sed 's/ $/\n/'
Padamkan fail dengan pengecualian
Menyaring jalan sistem fail mencari corak fail untuk dikecualikan dan kemudian menghapus isi kandungan yang lain. Sangat berguna untuk pembersihan yang tepat dan teliti.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Buat alamat MAC maya
Langkah ini dapat berguna untuk tugas keselamatan atau perlindungan komputer ketika melayari laman web berbahaya atau menjalankan tugas penggodaman.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Kesan yang sama dapat dicapai dengan menggunakan perintah "sed" bersama dengan perintah lain, seperti yang ditunjukkan di bawah:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
Contoh:
Tukar Prompt Terminal buat sementara waktu
Ini dapat membantu kita memasukkan parameter untuk sementara waktu yang boleh berguna bagi kita semasa kita melakukan aktiviti khas. Dalam contoh ini, kita hanya akan mengubah cara permintaan ditunjukkan.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Urus output Perintah "ps"
Perintah perintah yang sangat praktikal untuk membolehkan pemformatan output perintah «ps», iaitu apa yang diperolehi dari Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Contoh:
Ini dapat digunakan untuk proses sesuai dengan peratusan memori yang digunakan:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Saya harap contoh arahan ini menggunakan perintah "sed" akan sangat berguna. Dan ia berfungsi untuk digunakan secara langsung dari konsol atau secara tidak langsung dengan memasukkannya ke dalam skrip (tugas automatik).
Pada posting seterusnya pada Shell Scripting kita akan meneroka perintah lain.
Sekiranya anda ingin mengetahui lebih lanjut mengenai arahan "sed" lawati pautan ini "Tutorial dan Panduan Ringkas untuk Unix dan Linux"Atau"Penggunaan asas»Dan jika anda ingin mengetahui lebih lanjut mengenai Shell Scripting di Blog kami sendiri, anda boleh melihat penerbitan kami yang lain mengenai perkara ini, dengan mengklik di sini: Skrip DesdeLinux.