Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

1
Dosya üzerinde karakter aramak

Çözüldü 1 Cevaplar 50 Gösterim Unix/Linux
Selamlar,

Benim elimde biraz büyük (3 gb) bir dosya var ve bu dosya içinde istediğim karakterin hangi satırlarda olduğunu bulmak istiyorum. Amacım hatalı satırları bulmak. Karakter ise \r karakteri.

cat ve grep kullanabiliyorum kombinasyonunu kullanabiliyorum ama non-readble karakter olduğu için bir sonuç vermiyor.

Nasıl bulabileceğim konusunda yardım eder misiniz?

1 cevap

1
En İyi Cevap

Uzun aramalar sonucu birkaç sonuç buldum. Unix kullanımı veya cygwin kullanımı durumunda aşağıdaki komutlardan bir veya birkaçını kullanabilirsiniz.

Dosyada karakter bulmak için

od - komutu bir dosya içindeki herbir byte tek tek ekranda görmenize yarıyor. Ama üzerinde grep ile benim istediğim sonucu alamadım. Belki de ben beceremedim. Ama kullanışlı olduğu gerçek. Karakter, octal, hex bilgileri olarak görebiliyorsunuz.

cat- çok yaygın kullandığımız bir komut ama non-readable dediğimiz karakterleri göstermiyor. O işlem için parametresi varmış.

grep- filtrelemek için kullanıyoruz zaten. -n dersek aradığımız karakter hangi satırda onu görebiliyoruz. satır numarası dönüyor. 

gelelim kullandığıma 

cat -e -v -t dosyaadi | grep -n '^M'   bu komut dosyada \r geçen bütün satırları veriyor. bunu da > deyip başka bir dosyaya atabiliyoruz zaten. sonuç cat -e -v -t dosyaadi | grep -n '^M'  > sonuc.txt

şimdi başka bir sorun çıktı. bu karakterleri nasıl sileceğim.

 tr -d '\r' < DOSYA > kenan

tr- komutu da bir dosya içindeki istediğiniz bir karakteri diğer istediğinizle değiştirmeye veya silmeye yarıyor. -d ile sildim. temiz bir dosya elde ettim.

İhtiyacı olan arkadaşlar için güzel olabilir.

8 Ocak 2016 kenan (2,835 puan) cevapladı
12 Ocak 2016 buzel seçti
...