Ubuntu Türkiye

Yazılım => Programlama => Kabuk (sh,bash,*csh,ksh,zsh) => Konuyu başlatan: barisyilmaz78 - 23 Nisan 2012 - 11:26:03

Başlık: [Çözüldü] wc -m komutu
Gönderen: barisyilmaz78 - 23 Nisan 2012 - 11:26:03
Merhaba

basit bir konu ama nedenini ögrenmek istiyorum. baris.txt adli bir dosyam var. icinde sadece abcde diye bes karakterlik bir metin var. Lakin ben

wc -m baris.txt  yazinca sonuc olarak
         6 abcde    geliyor. Normalde burdaki karakter sayisi 5 olmasi gerekmiyor mu?

Birde test adli bir dosyam var icinda asagidakiler yaziyor. ./test DXABC yazinca bu DXABC'nin karakter sayisini kontrol etmesini istiyorum.

#!/bin/bash
karaktersayisi$(echo $1|wc -m)
if [ "$karaktersayisi" = "5" ]
then
     echo "karakter sayisi =$karaktersayisi"
else
    echo "karakter sayisi 5 degil"
fi



programi söyle isletiyorum mesala:  ./test DXABC

karakter sayisi 5 degil sonucu geliyor.

neden acaba?

Düzenleme Notu: Komut ve çıktıları için [code][/code] etiketi kullanınız.
Başlık: Ynt: wc -m komutu
Gönderen: bytan - 23 Nisan 2012 - 12:28:37
Dosya içerisinde e harfinden sonra boşluk karakteri var mı? Ya da saydığı karakterleri teker teker ekrana yazdırdığında 6. karakter hangisi oluyor bakma imkanın oldu mu?
Başlık: Ynt: wc -m komutu
Gönderen: barisyilmaz78 - 23 Nisan 2012 - 12:34:09
dosyanin icerigini ben kendim yazdim ne saginda ne solunda bosluk karakteri var. Daha dogrusu hicnirsey yok. sadece abcde
Başlık: Ynt: wc -m komutu
Gönderen: bytan - 23 Nisan 2012 - 12:47:34
Sayılan karakterlere bakalım. Muhtemelen satır sonu/yeni satır karakteri vardır.

cat baris.txt | od -c
Başlık: Ynt: wc -m komutu
Gönderen: barisyilmaz78 - 23 Nisan 2012 - 12:52:59
tesekkürler.. problemin nereden geldigini anladim .. dediginiz gibi baktim ; echo $1 dan dolayi satır sonu/yeni satır geliyor en sonda..

echo -n $1 yazdigimda satir sonu eklenmiyor..
gözden kacmis :-)