Anda di halaman 1dari 3

ntuk mengedit suatu naskah diplatform Linux, sudah tersedia puluhan

editor yang dapat Anda gunakan. Namun, jika yang Anda butuhkan hanyalah suatu utiliti kecil dengan kemampuanreget yang baik, utiliti seperti Sed dapat menjadi pilihan yang tepat.
Sed (Stream EDitor) merupakan utiliti di Linux yang dapat melakukan penyuntingan dengan mode noninteraktif. Hampir sama dengan cara kerja editor yang mengizinkan pengeditan meldui script seperti editor ed atau emacs,Sed dapat bekerja dengan hanya menggunakan satu input sehingga bersifat lebih efisien. Sed juga memiliki kemampuan untuk memfilter teks dalam pipeline sehingga membedakan Sed dengan editor yang lain. Utilitas sed bekerja secara selruensial mernbaca zuatu file, baris perbaris, dan menlmpan pekerjaan sementara ke dalammemory. Hasilyang diperoletr oleh Sed, akan ditampilkan perbaris ke tampilan layar. Jika menginginkan hasil yang diperoleh tersimpan ke dalam sebuahfile, Anda tinggat mereilirecthastlyang diperoleh untuk disimpan ke suatu file. a\ : Menimpa pada satu atau lebih baris pada baris yang diproses. c\ : Mengganti teks pada baris yang diproses dengan baris baru. d : Menghapvs pattern space dari baris baru. D: Menghapus baris pertama pada pattern space. i\: Menyisipkan teks di bawah baris yang diproses. n : Menrbacabarisinputselanjubrya dan baris yang aktif dikeluarkan ke standar output, kemudian memutar proses pada baris baru dengan perintah selanjuhrya. p : Mencetak baris pada pattern space. P : Mencetak baris pertama pada . pattern space. s/stringl/string2 :Mengganti eksprex : Untuk mengganti isi pada pattern space. y/src/dest: Untuk mengganti teks pada source dengan teks pada d,estination. -eperintah:Digunakan untuk melakukan multiple editing. -e selalu diikuti oleh perintah editing. -f : Mengawali nama file script Sed yang akan digunakan untuk mengisi perintah Sed. Untuh mengetahui option lengkap yang terdapat pada Sed, Anda dapat menggunakan perintah info sed,.

Penggunaan $ed
Setelah mengenal berbagai sintaks dan berbagai macam option yang terdapat pada Sed, berikut ini akan dibahas beberapa contoh umum penggunaan sed. o Mengganti suatu kata. Salah satu penggunaan utilitas Sed yang pal. ingseringdigunakanadalahuntuk mencari danmengganti suatu kata ke kata lainnya. Untukmelakukan hal ini, sintaks yang biasa digunakan dalam Sed adalah sebagai berikut:

si regular stringl denganstring2. Mencetaknomor baris yang diproses. Flag subtitusi:


Angka 1-n untuk mengindikasikan bahwa penggantian hanya dilakuhan pada perintah ke-n. Untuk foengubah semua yang ada pada pattern space. Untuk mencetak baris pada pat-

Beragam option di$ed


Secara default, utiliti Sed memiliki option sebagai berikut:

,r,.!ffi
Instruksi yang terdapat pada Sed digunakan untuk memerintahkan Sed agar melakukan operasi seperti menyunting, atau menampilkan, menghapus. Sed juga memiliki sejunlah option. Beberapa di antaranya adalah:

tern space. file: Untuk mencetakbaris kelu-' aran ke sebuahfiIe.

Sebagai contoh di sini, kata AS

64

03/2008 r INF0L|NUX

www.infolinux.web.id

E[$T#ffit&L $r0
ROMA pada string yang diberikan akan diganti dengan kata Juventus.
i echo Pavel Nedved adalah 's/AS ROl,tAl pemain A.s ROMA I sed Pavel Nedved adalah pemain Nedved,/Alesildro Alesandro Juventus Del DeI Pierol' pemain Juventus Pi.ero adalah

Simpan output yang dihasilkan ke dalam file sed2.txt.


$ sed txt 's/AS RoMA/,Juventus/, sed1. > sed2. t.xt sed2.txt Nedved adalah pemain

Juventus/' Pavel Nedved adalah pemain

$ cat Pavel

Juventus

Selain menggunakan option -e di Sed untuk melakukan beberapa penggantian kata, Anda juga dapat menggunakan tanda koma yang memisahkan tiap option s di Sed.
$ echo pemain "Pavel Nedved adalah 's/AS Nedved,/ AS ROMA" I sed ; s/Pavel

a Mengganti suatu kata dalam file dan simpan ke file lain. Sekarang kita akan mencoba melakukan perintah diatas terhadap file yang mengandung string diatas. Ketikan string "Pavel Nedved adalah pemain AS ROMA", dan sooedengan nama file sedl.txt.
S ectto "Pavel pemain $ cat Pavel ROMA Nedved adalah AS ROMA" > sedl.txg sed1. txt Nedved adalah pemain AS

,fuventus

Lakukan pencarian kata AS ROMA pada file sed1.txt, dan ubah menjadi kata Juventus.
'6lA5 $ sed EXE RoMA/.luventus/, sed1.

a Melakukan beberapa pengubahan kata sekaligus. Selain dapat melakukan proses seorch dan replace terhadap satu kata, Anda juga dapat melakukan beberapa prosessearchdan replacekata yang terdapat pada suatu string. Untuk melakukan hal ini, Anda dapat menggunakan option -e pada Sed. Di bawah ini, kita akan melakukan penggantian pada dua kata. Pertama kata AS ROMA menjadi Juventus, dan kata Pavel Nedved menjaCi Alesandro Del Piero.
S echo pemain "Pavel Nedved adalah AS ROMA" I sed -e 's/ -e 's/Pavel

ROMA/,fuventus/ Alesandro DeI Piero Del

Piero/'Alesandro pemain Juventus Demain

adalah

Alesandro ,Juventus

De1 Piero

adalah

a Melakukan pengubahan kata secara menyeluruh. Semua option sed yang telah dicontohkan sebelumnya tidak bersifat menyeluruh. Untuk jelasnya, ketikkan contoh berikut:
$ echo Rapat dilakukan hari redaksi telah dan hari Kamis iniI sed

Kamis sebel.uroya ,tumat/' Rapat redaksi

's/Kanis/

AS RoMA/,tuventus/'

teLah

dilakukan

g'{ts?:rniiFg
AhtEanlu
t l o R o mS i atria Wahono (llmukomputer.com)

Rp. I 50.000
s.d.H-4

EorlyBlrd

{ l 'D r s .R u s m a n t oM ,M
(Pemred InfollNUX)

1 rH ' . Prihantoosa ,Si,MMSi S


(KetuaEdubuntu Indonesia) (Ketua lT Club)

t t D r s . M g s .H e n d r iT h o y i b , MM

Rp 200.000
H-3
i:5 )

Seminar kit Sertifikat CDEdubuntu Muslim Edition Lunch

LP3T-NF DEPOK

Jl. Marqonda RavaNo.522 8 (02T)7874213,7874224Fax.(021)7874225

r LPST-NF JAKSEL

@auAi
LP3T-NF

ffi
z

Jl. Mampang Prapatan )V4 E (021)7(Y7115,7975235 Fax (021)7901205

. FakultasuAl

Komp. MasjidAgungAlAzhar - Kebayoran Jl. Sisingamangaraja Baru Jakarta Selatan 12110 E (021)72792753,7274456 Fax (021)7244767

gAJTilffiIAL $E[
7=1t dile { (1<=r0)};do touch test51 txt iuprlyanto@serverl:-/tettl ; 1et r+:1; dofr ls suprryanto@tervrl r-ltettS te5t6 trt test8 txt 1e5t10 trt test2 txt te5t4 trt te5t9 trt tst3 txt test5 txt testT txt lestl txt ts testrttt t1" 91) euprryantqtterverl:-/te!tt {prinr{'mv I aik l 1 /brn/sh l sed s/test/coba/2 suprry6nto@rerverl:-/test9 ls cobaS txl coba2 txt coba4 txt coba6 txt aobdlo txt coba9 txt coba5 txt cobaT trt robat tit cobaS txt s u p r r y a n t o s e r Y r li - l t e ! l $

filc dalam $atr lirefforiitengubah rocanroknil nama

hari

Jumat

ini

dan hari

l(amis

o Menjalankan Sed dalam skrip. Kumpulan option yang digunakan pada sed, dapat juga Anda masukkan ke dalam sebuah sklip, dengan kemudian dijalankan menggunakan option -f. Sebagai contoh, option pada perintah sed '/two/ s/l/2/; /three/ s/I/3/' sed3. txt, akan disimpan dalam skrip sebagaiberikut:
$ caE sedlist /two/ /Ehree/ s/t/2/ s/L/3/

nama lainnya. Untuk melakukan hal ini, dibutuhkan gabungan fungsl antara Sed dengan awk. Sebagai contoh, dalam folder test, terdapat 10 file yang memiliki nama testl.txt, test2.txt,...,testl0. txt. Buat dahulu 10 fiie tersebut dengan menggunakan perintah berikut:
$ i=l; whlle ((i<=10)); let i+=1, do touch done test$i.txt;

rsucru'rurYd

Terlihat di output, kalau perubahan kata Kamis menjadi Jumat hanya terjadi pada satu kata saja. Untuk mengubah semua kata Kamis yang terdapat pada string, tambahkan option g di Sed.
S echo Rapat dilakukan hari redaj<si Kamis telah ini dan hari 's/KanLe/

Jalankan segala option Sed yang terdapat dalam file sedlist dengan menggunakan option -f.
$ sed -f one two three one I 2 3 1 2 2 3 sedlist sed3.!xt

Setelah tercipta file testl.txt, ..., testlO.txt, berikutnya kita akan merubah semua nama fiIe tersebut menjadi ubahl.txt, ..,, ubah10.txt. Untuk melakukan hal tersebut, jalankan perintah di bawah ini:
g ls "91/ w w w testr.txt $$1.))' I '{print("rw I awk ' a / t e st/coba/2' eed cobaLo.txt coba1.lxt coba2.gxe coba3.txt coba4.txt cobas.tx! cobaS.txt cobaT.txt cobaS.txt cobag.txt

Kamis eebelumya JumE/g' Rapat hari redaksi Jum! ini

I sed

testlo.txt testl.ExE test2.txt

telah

dj-lakukan ,f,umat

two t0o three

dan hari

Irw tesl3.txt mv test4.Ext w Eests.txt

sebelumnya

o Mengubah suatu kata berdasarkan kondisi tertentu. Pada suatu waktu, mungkin Anda ingin melakukan perubahan terhadap suatu kata dalam file pada kondisi tertentu. Sebagai contoh, isi file sed3.txtadalah sebagaiberikut:
$ cat one two three one gwo Ewo three sed3.txt 1 L L 1 1 1 1

o Menghapus semua baris dengan option tertentu. Dengan menggunakan option d, Anda dapat menghapus suatu baris tertentu yang terdapat pada file. Masih menggunakan file sed3.txt, Anda dapat menghapus semua baris yang mengandung kata two dengan menggunakan perintah berikut :
5 sed '/two/ one three one three L 1 1 1 d' sed3.gxt

mv tesE6,lxt w testT.txt

mv test8.txt w test9,txt

Berdasarkancontoh di atas, Anda ingin mengubah angka 1 pada two menjadi angka 2, dan angka 1 pada three menjadi angka 3. Untuk melakukan hal ini, cukup jalankan perintah berikut:
9 s e d ' /Ewo/ /th.ree/ one two lhree one thro two three e/1./2/ a/7/3/' 1 2 3 1 2 2 3 sed3.txt

Jika yang ingin dihapus adalah semuabaris selainbaris yang mengandung kata "two", Anda dapat menggunakan perintah berikut:
i eed '/Ewo/ L 1 1 !d' sed3,txt two Ewo two

Perintah di atas dibuat hanya untuk melihat apakah output file yang diinginkan sudah sesuai dengan yang diinginkan. Jika sudah sesuai dan tidak ada kesalahan, Anda dapat segeramelakukan perubahan nama file test*.txt menjadi cobax.txt secara permanen dengan menggunakan perintah berikut:
g Ie .'t." tesb*.txt "91)), I '{print("mv I awk ' s / L eeL/coba/2' sed

| /bL\/eh
,l

o Mengubah secara rekursif nama file dalam suatu folder. Dengan memahami beragarn option untuk mengubah suatu string dengan menggunakan Sed, Anda dapat melakukan beragam hal dengan menggunakan sed. Misalnya, secara rekursif beberapa nama flle yang memiliki keserupaan,dengan

Sed merupakan utiliti dengan kelengkapan fitur regex yang cukup lengkap. Apalagi bila utiliti ini digabungkan dengan beragam utiliti lain untuk beragam kebutuhan. Dengan memahami Sed,diharapkan dapat semakin mempermudahAnda dalam memanajemenfile di Linux, atau. beragam tugas administrasi sistem lainnya. Akhir kata, selamat r mencoba! olinurco.id] Supriyanto [supdyanto@inf

66 os/2oo8 INFoLtNUx

w w w . i n f o l i nu x . w e b . i d

Anda mungkin juga menyukai