Tekrar merhaba. Bir ödevimiz daha var, ilgilenebilecek arkadaşlar pm atabilirler mi?
ÖDEV 1 : Dosyada Kelime Arama Son Teslim Tarihi
Unix ile İşletim Sistemleri Pazar, 15 Ocak (23:55)
Verilen bir klasördeki bir dosyanın içerisinden belirtilen karakterle başlayan kısımları alan bir kabuk programı yazınız.
verioku -k klasörismi -d dosyaismi -c kelimebasharfi
Programınız yukarıdaki şekilde çalışmalıdır. Dosyada her satırda bir kelime olacaktır. Eğer o satırdaki kelime verilen harf ile başlıyorsa programınız o kelimeyi alacak.
Örnek olarak:
omer2
tyler
ome
durden
om
joker
o
şeklinde içeriğe sahip character.dat dosya 8 tane kelime içermektedir. Aynı klasör içindeki bu dosya üzerinde çalıştırılan verioku komutu, aşağıdaki çıktıyı vermesi lazımdır
verioku -k . -d character.dat -c o (komut)
omer2 (sonuç)
ome
om
o
verioku -k . -d character.dat -c p (komut)
(sonuç)
Eğer klasörümüz bulunduğumuz klasördeki "imdb" isimli başka bir klasörün içinde olsaydı,
verioku -k ./imdb -d character.dat -c o (komut)
şeklinde çağırılacaktı.
Not : '.' karakteri bulunduğunuz klasörü, '..' karakteri bir önceki klasörü göstermektedir.
İpuçları ve Açıklamalar:
Bu programda büyük olasılıkla cat, echo, head, tail, tr, grep komutlarını ve kabuk programlamada kullanılan if, for, while döngülerini kullanmak isteyeceksiniz.
Programa verilen parametreleri $1, $2, $3.... değişkenleri üzerinden alabilirsiniz.
Programınızın herhangi bir dosya içeriğiyle çalışabiliyor olması lazım. Yukarıda verilen örnek sadece istenilen fonksyonaliteyi açıklamak içindir.
Programınızın dosyada istenilen kelime ya da hata mesajı dışında herhangi bir şey yazdırmamanız gerekmektedir!
Programlarınız istenilen işi ne kadar yapabildiğine göre değerlendirilecektir. Eğer programın hepsini yazamazsanız istenilen satırı çıkaran (Tüm satırı veren, istenilen sütünu çıkartmayan) daha basit bir halini oluşturmaya çalışın. Bu durumda kısmi not alabilirsiniz.
Bu ödev kişisel çaba ile, grup çalışması olmadan yapılması istenen bir ödevdir. Buna uymamanız durumunda ödeviniz değerlendirilmeyecektir.
Sorularınız ve karşılaştığınız problemler için tartışma grubunu kullanınız.