Sed: Mempelajari Skrip Shell Menggunakan Perintah Sed Terminal
Perintah "sed" dalam Sistem Operasi Bebas tipe GNU / Linux ini adalah perintah yang sangat serbaguna, karena pada gilirannya Ini dianggap sebagai editor teks yang berorientasi pada "aliran" daripada "interaktif" seperti yang biasa, karena menerima file atau input standar sebagai input, kemudian memproses setiap baris dan hasilnya dikirim ke output standar. Artinya, SED (Stream EDitor) memungkinkan kita untuk mengubah konten dari berbagai baris file berdasarkan serangkaian perintah atau file perintah.
Umumnya, perintah «sed» digunakan sebagai filter, karena itu membaca setiap baris entri data Anda dan kemudian melakukan tindakan yang diminta yang biasanya membaca, mengekstrak, memodifikasi dan menampilkan atau menyimpan. Meski kekuatannya seperti itu Selain itu, ini memungkinkan kita dengan cara yang nyaman, menghapus baris, merekam, atau mengganti string karakter dalam baris file.
Pengantar perintah "sed"
Dalam publikasi sebelumnya lainnya di DesdeLinux kami telah berbicara dan menunjukkan contoh tentang penggunaan perintah ini, seperti: Cara menghapus baris tertentu dari file ... y Dengan Terminal: Menggunakan Ekspresi Reguler II: PenggantianJadi kali ini kita akan langsung melihat sedikit lebih maju dan hanya sebagai contoh praktis penggunaannya.
Pada dasarnya perintah «sed» memiliki sintaks berikut:
sed comandos_sed archivo
Dimana "Command_sed" sesuai dengan satu atau lebih spesifikasi tentang apa yang harus dilakukan dengan baris yang dibaca "arsip".
Penggunaan yang lebih ekstensif membuat kita memiliki sintaks berikut:
sed [-ns] '[direccion] instruccion argumentos'
Dimana:

Contoh praktis
Buat daftar File / Folder di sebuah jalur
Baris perintah berguna yang dapat digunakan untuk membuat daftar konten dari jalur X yang ditentukan dan kemudian mendeteksi / menghitung / memfilter item yang dicari dan menunjukkan tindakan selanjutnya yang harus dilakukan.
ls -l | awk '{ print $NF }' | sed 1d
Contoh:

Varian lain yang menggunakan perintah "sed" ini sangat berguna:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Buat urutan angka
Tampilkan di layar atau simpan dalam file urutan numerik (atau input lain) dibuat tetapi secara horizontal (linier) dan bukan vertikal yang nantinya dapat dibaca untuk proses lain.
seq 100|tr '\n' ' '|sed 's, $,\n,g'

Contoh yang sama dapat dilakukan dengan menggabungkan perintah «haus" dengan "Printf" seperti yang ditunjukkan di bawah ini:
printf '%s ' {1..100}|sed 's/ $/\n/'

Hapus file dengan pengecualian
Memilah-milah jalur Sistem File mencari pola file untuk dikecualikan dan kemudian menghapus konten lainnya. Sangat berguna untuk pembersihan yang tepat dan hati-hati.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Buat alamat MAC virtual
Langkah ini dapat berguna untuk tugas keamanan atau perlindungan komputer saat menjelajahi situs berbahaya atau melakukan tugas peretasan.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Efek yang sama dapat dicapai dengan menggunakan perintah "sed" bersama dengan perintah lain, seperti yang ditunjukkan di bawah ini:
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:

Ubah Terminal Prompt untuk sementara
Ini dapat membantu kami untuk sementara memasukkan parameter dalam prompt kami yang dapat berguna bagi kami saat kami melakukan aktivitas khusus. Dalam contoh ini kami hanya akan mengubah cara prompt ditampilkan.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Kelola output dari Perintah "ps"
Urutan perintah yang sangat praktis untuk memungkinkan pemformatan output dari perintah «ps», yaitu apa yang diperoleh dari Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Contoh:

Ini dapat diterapkan untuk proses sesuai dengan persentase memori yang dikonsumsi:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Contoh baris perintah ini menggunakan perintah "sed" Saya harap Anda merasa sangat berguna. Dan mereka berfungsi untuk digunakan secara langsung dari konsol atau tidak langsung dengan memasukkannya ke dalam skrip (tugas otomatis).
Di posting berikutnya di Shell Scripting kita akan menjelajahi perintah lain.
Jika Anda ingin mempelajari lebih lanjut tentang perintah "sed" kunjungi tautan ini "Tutorial dan Panduan Singkat untuk Unix dan Linux"Atau"Penggunaan dasar»Dan jika Anda ingin mempelajari lebih lanjut tentang Shell Scripting di Blog kami sendiri, Anda dapat melihat publikasi kami yang lain tentang masalah ini, dengan mengklik di sini: Membuat skrip di FromLinux.