You are on page 1of 11

Praktikum

13
A. T U J U A N

Perintah Sed

1. Menggunakan perintah sed untuk modifikasi file 2. Menggunakan perintah sed untuk operasi cyclically. 3. Menggunakan perintah sed sebagai control flow untuk eksekusi didalam perintah script

B. DASAR TEORI
Sed adalah editor teks noninteraktif untuk melakukan routine modifikasi file teks. Sed menyediakan kunci modifikasi untuk isi teks dalam sebuah file dan operasi pembacaan file forward. Sebagai contoh, sed dapat mendelete isi semua baris serta memberikan sebagai pattern teks, mengganti satu pattern dengan yang lainnya pada sebuah baris, membaca satu file ke dalam file lainnya dalam tempat yang ditentukan, atau menyebarkan bagian input file ke output file. Sed tidak dapat melakukan tugas menambah sebuah kolom dalam sebuah file, melakukan perubahan file yang rumit, atau menyimpan bagian dari sebuah file yang akan digunakan belakangan. Operasi rumit adalah tugas ideal untuk awk, yang mana sangat diperlukan dalam pemrograman sed. Sintak umum dari perintah sed seperti dibawah ini. Syntak: sed {expression} {file}

114

Sed mirip dengan ed, yaitu digunakan sebagai desain control untuk sebuah script. Perbedaanya sed untuk operasi internal, sedangkan ed untuk edit buffer setiap waktu sebuah perintah yang masuk. Sed mencari perintah script setiap saat pada baris baru yang dibaca dari input teks. Sed merupakan operasi cyclically, yang mana sebuah cycle harus berisi 1. membaca baris input kedalam pattern space 2. mengeksekusi edit script 3. men!copy pattern space untuk dikeluarkan"output Seperti halnya ed, sed #uga dipergunakan untuk edit buffer dan menahannya sebagai teks edit. Perbedaanya sed edit buffer, memanggil pattern space yang berisi satu baris teks, sedangkan ed edit buffer berisi segala file. Meskipun demikian perintah sed fleksibel untuk baris pertama dalam pattern space. $onsep dari baris pertama yaitu dapat menahan isi dari baris pertama dan men#adikannya baris baru. %isamping pattern space sed #uga berisi hold buffer. &eberapa perintah untuk pertukaran teks akhir dan ke empat antara pattern dan hold buffer dan opsi pada perintah sed adalah sebagai berikut 'abel 13!1. Opsi pada perintah sed Optio n -n -e -f Meaning Don't output the pattern space at the end of each cycle. When n is given output is produced only when of the print commands is encountered script The e argument specifies that the following argument is an the script scriptfile The f argument specifies that the following argument is the name of a file that contains an editing script

Sed memberi supply dengan sebuah script, salah satunya adalah pada command line atau didalam sebuah file. Sed #uga menggunakan

115

baris alamat dan beberapa operator untuk mencetak, menghapus dan sebagainya. Penggunaan baris alamat pada sed (sed addresses line) dan beberapa operator yang digunakan seperti ditu#ukkan pada tabel 13!2 hingga 13!*. Perintah sed dapat menerima +nol+, +satu+, atau +dua+ address. ,ol address artinya melakukan perintah setiap baris"perbaris. 'abel 13!2. Penggunaan -ddress pada sed Addres s code n ' (pat( Meaning n a!solute line num!er n. The line counter is not reset each time a new file is processed. "irst line # $% lines& line $1is the first line of the second file. The last line of the input conte)t address matches any line containing the pat regular e)pression. 'abel 13!3. &asic sed operators Operator *address-range+(p *address-range+(d s(pattern1(pattern$( *addressrange+(s(pattern1(pattern$( *addressrange+(y(pattern1(pattern$( g Name print delete Effect ,rint *specified address range+ Delete *specified address range+

su!stitute -u!stitute pattern$ for first instance of pattern1 in a line su!stitute -u!stitute pattern$ for first instance of pattern1 in a line& over address-range transform replace any character in pattern1 with the corresponding character in pattern$& over address-range .e/uivalent of tr0 glo!al 1perate on every pattern match within each matched line of input

'abel 13!*. ./amples of sed operators Notation 2d (3'(d 1&(3'(d (5ones(p Delete 2th line of input. Delete all !lan4 lines. Delete from !eginning of input up to& and including first !lan4 line. ,rint only lines containing 65ones6 .with -n option0. Effect

s(Windows(7inu)( -u!stitute 67inu)6 for first instance of 6Windows6 found in each input line.

118

Notation

Effect

s(9-1D(sta!ility(g -u!stitute 6sta!ility6 for every instance of 69-1D6 found in each input line. s( :'(( s(%%:(%(g /GUI/d s/GUI//g Delete all spaces at the end of every line. ;ompress all consecutive se/uences of <eroes into a single <ero. Delete all lines containing 6=>?6. Delete all instances of 6=>?6& leaving the remainder of each line intact.

Satu address adalah berarti melakukan perintah untuk semua baris yang sesuai dengan address. %an dua address berarti melakukan perintah dalam range baris. 0ika baris kedua kurang dari baris pertama, maka melakukan perintah hanya untuk baris pertama sa#a. 1ntuk mengeksekusi sebuah group dapat menggunakan perintah dengan tanda kurung kurawal { }. Sintak satu atau dua address dinyatakan dengan { perintah, perintah pernyataan baris, dan akhir } untuk memberi batas akhir dari sebuah group. %ibawah ini adalah contoh perintah pembacaan script dari sebuah terminal. $ sed n f /dev/tty/ usr/dict/words Modifikasi Teks Perintah sed modifikasi teks dapat ditambahkan insert, atau delete line sebagai berikut ! ! ! mengganti satu group line dengan lainnya mensubtitusi satu pattern teks dengan lainnya mentranslate satu group karakter kedalam group lainnya

contoh addr a\ text\ text

Perintah penambahan tempat text pada output, sebelum baris input berikutnya dibaca.

11@

addr1,addr2 c\ text\ text\ Perintah pengganti delete setiap address pattern space, output te/t, dan memulai cycle baru. Addr1, addr2 d Perintah delete untuk menghapus pattern space dan memulai cycle baru. Addr1, addr2 D Perintah delete 2ariant untuk menghapus inisial segmen pada pattern pace dam memulai cycle baru. % adalah ekui2alen dari d #ika pattern space berisi hanya satu baris. Addr i\ text\ text\

Perintah insert untuk segera menempatkan te/t pada output. 'etapi semua baris akhir menggunakan 3 dan menu#u baris baru.

addr1,addr2 s/expr/repl/f Perintah subtitusi repl dengan e/pr pada semua baris address addr1,addr2 y/string1/string2/ Perintah translate karakter pada string1 dan string2 Perintah penambahan dan insert hanya untuk satu address, sedangkan delete, mennganti baris, subtitusi pattern teks, dan translate untuk satu atau dua address. 4ontoh perintah sed script editing $ sed f script remind dimana script adalah nama file script"program remind adalah nama file yang berisi data yang akan diakses dengan perintah sed dengan opsi 5f atau 5e. ontro! "!o# 4ontrol flow pada sed ada dua macam yaitu 1. branch

112

mengganti point untuk eksekusi didalam perintah script. Pernyatan branh dengan sebuah label atau untuk akhir dari script. Sed mempunyai unconditional branch yang merupakan"selalu branch dan conditional branch, dimana branch #ika berupa bentuk subtitusi. 2. Control flow yang biasa digunakan untuk mengganti operasi cycle. 4ontoh control flow untuk operasi cycle :label Membuat label dengan nama symbol untuk lokasi dalam script addr1,addr2 b label &ranch pada label atau akhir dari script #ika label tidak ada addr1,addr2 n Menulis pattern space pada output dan membaca baris input berikutnya. addr1,addr2 Penambahan baris berikutnya pada input untuk pattern space. Addr ! $eluar dari proses penulisan pattern space ke output, dan proses dihentikan.

addr1,addr2 t label &ranch pada label #ika terdapat subtitusi yang dibuat dari akhir t atau sampai akhir dari baris input.

. $ROSEDUR
1. Masuk ke sistem operasi 6inu/. 2. 6ogin sebagai user yang telah ditentukan. 3. 7unakan perintah sed pada pemrograman shell. *. 4atatlah hasil dari setiap program pada prosedur no.3 sebagai laporan sementara.

11A

D. $ER OBAAN
1. Menggunakan perintah script sed dari terminal. &uat file baru dengan nama word sebagai berikut cat " word $ agus ir#a afiludin candra d$ simpan file word ini pada direktori sbb %o#e/na#a user/word / sed n f /%o#e/na#a user/word $ 2. Menggunakan perintah sed dari terminal dengan opsi 5f dan !e. $ cat " re#ind &an today at ' (all D)( Add serial line for *rad +o#e at five s%arp $d $ cat " script s/D)(/Dept, )nviron, (ons,/ /&an/s/today/to#orrow/ 1i\ -erner and .a!uel t%is wee/end\ 0eed polly for ada# 'd $d $ sed f script re#ind $ sed e /D)(/d e s/five/four/ re#ind 3. Menggunakan perintah sed dari terminal dengan beberapa opsi. $ cat " f1 ,(1 2 ,D3 4was 3ol and solstice Ad and Astra 4il +ic saw 3u# 5n (orporate ,D) $d $ cat " script1 /D3/b fail /63/b fail /)7/,/) /p 1$%

b : fail s/,8/ o displays allowed at start/p ! $d $ sed n f script1 f1 $ sed e s/D3/)7/ 9e s/D)/) / 9n f script1 f1 *. Menggunakan perintah sed untuk menampilkan bilangan random 18 digit. $ cat " sed',s%
//p; %ead 9c' /dev/urando# : od 9 ' 9tu' : sed 9ne ;1s/,8

exit < $,/sed',s% 9. Menggunakan perintah sed untuk mencari data string. $ vi sed=,s% >?/bin/bas% directory@/usr/bin/ fstring@A0ree 3oftware 0oundationA
for file in $B find $directory 9type f 9na#e ;8; : sort C

do strings 9f $file : grep A$fstringA : sed 9e AsD $directoryDDA done exit < $ ,/sed=,s% :. Perintah sed untuk menampilkan data baris. cat " lines $ 1< 2< 2< d$ Bsed n e Ep Benter $ gF BpG lines Benter F ;. Perintah sed untuk mengambil data dari suatu file dan disimpan ke file lain. cat "script $ s/(H1*A35(/2/g s/3(IDA.J3/(3+K ),2/g s/3I)4A/(3+K ),L/g s/(3+K )/'/g

1$1

d$ cat "doc $ (%apter (H1*A35( covers t%e funda#ental 0eature of t%e H.( language, +owever two 9i#portant features 9 9 argu#ents and #eta argu#ents 9 9 arenGt discussed until 3ection 3(IDA.J3 and section 3I)4A d$ sed f script doc $ <. Sed untuk membaca semua baris pada sebuah file dan delete baris tertentu $ vi sedL,s% >?/bin/bas% sed 9e /$s/d A$1A exit < $ ,/sedL,s% file1,txt =. Menggunakan perintah sed untuk subtitusi pattern $ vi sedM,s% >?/bin/bas% A.J3@2 )N*ADA.J3@O= if P $> 9ne A$A.J3A Q t%en ec%o AHsage: Rbasena#e $<R old9pattern new9pattern filena#eA exit $)N*ADA.J3 fi oldNpattern@$1 newNpattern@$2 if P 9f A$2A Q t%en fileNna#e@$2 else ec%o A0ile \A$2\A does not exist,A exit $)N*ADA.J3 fi sed 9e As/$oldNpattern/$newNpattern/gA $fileNna#e exit < $ cat word $ ,/sedM,s% agus candra word $ ,/sedM,s% candra agus word 1$$

18. Menggunakan perintah sed sebagai implementasi perintah grep $ vi sedb,s% >?/bin/bas% )N*ADA.J3@O= if P 9S A$1A Q t%en ec%o AHsage: Rbasena#e $<R patternA exit $)N*ADA.J3 fi ec%o for file in 8 do output@$Bsed 9n /A$1A/p $fileC if P ? 9S A$outputA Q t%en ec%o 9n A$file: A ec%o $output fi ec%o done ec%o exit < $ ,/sedb,s% afiludin (afiludin >? isi file word prog. ,o.1) $ ,/sedb,s% 2<< (288 >? isi file sdata di praktikum 12 prog.
,o.1)

11. Menggunakan perintah sed untuk pembuatan kolom $ sedc,s% >?/bin/bas% Bprintf AT).I5335K 3 U5 63 K- ). J.KHT 35V) IK 4+ DAW ++:II T.KJ9 AI)\nA \X ls 9l : sed 1dC : colu#n 9t exit < $ ,/sedc,s% &andingkan hasilnya dengan perintah ls 5l.

E. %ati&an
1. 7unakan perintah sed untuk membuat program aplikasi

Message filter yang berfungsi membantu penyaringan kata! kata yang tidak diinginkan agar tidak muncul atau diganti dengan karakter lain.

1$B

Misalnya kata porno dan seks seperti contoh berikut Meskipun sudah ada sangsi hukumnya, orang yang sudah kebiasaan pornoaksi ya tetap saja melakukan seks bebas. @asil penyaringan Meskipun sudah ada sangsi hukumnya, orang yang sudah kebiasaan #####aksi ya tetap saja melakukan #### bebas. 2. Pada sebuah toko elektronika men#ual barangnya dengan beberapa nomor item dan harga, untuk membeli barang pembeli harus memasukan nomor item barang dan harga barang tersebut. Selan#utnya akan muncul informasi tentang tipe, spesifikasi, dan harga barang yang telah dipilih oleh pembeli. %ari kasus diatas buatlah programnya dengan menggunakan perintah sed untuk menampilkan informasi tipe, spesifikasi dan harga barang yang terdapat pada sebuah file teks ( .t/t ) berdasarkan masukan nomor item dan harga barang.

1$4

You might also like