Biri tabloda bulunan herhangi elemanı çağırma

Başlatan namruni, 09 Ocak 2014 - 15:12:09

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

namruni

Herkese Merhaba...
Bash ile programlamaya yeni başladım. Tablo şeklinde bir dosya düşünelim. Boyutu mesela 4*3 olabilir. elemanlar arasında boşluk olanlar da bulunsun . Bu elemanları çağırmak için bir program parçasına ihtiyacım var. grep ve cut ile bir şeyler yapmaya çalıştım ancak onlar tüm satırı çağırıyor. Ben mesela 3. satırın 2. elemanını çağırmak istiyorum.
mesela..
ali  veli  can
hasan Ahmet
salih ramazan hüseyin
123   Ahmet   256


buradan 2. satır 3. elemanı nasıl çağırabilirim.
sanırım döngü kullanmak gerekecek ama bir türlü düşünemiyorum...
yardımcı olursanız sevinirim...
Şimdiden teşekkür ederim..

guopx

sed '<buraya hangi satırı almak istediğinizi yazın>q;d'  /tablo/dosyası/yolu | awk '{ print $<buraya o satırdaki kaçıncı kelimayi almak istediğinizi yazın> }'
örneğin sed '19q;d' /tablo/dosyası/yolu | awk '{ print $56 }' mesela bu 19'uncu satırdaki 56'ncı kelimeyi alır.
gibi bir şey uydurdum ayaküstü umarım çalışır.
Sevdiklerine sevdiğini söyle çok geç olmadan.

namruni

Cevabınız için teşekkür ederim. Denedim ve oldu.zihninize sağlık ancak  asında ben sormak istediğim şeyi sanırım tam ifade edemedim...

aslında benim bir   deneme.dat diye br dosya olsun
ali can hasan
veli mehmet
salim aslı yağz

bu dosyadan  daha önce satır ve sutun no değişken ile vermek şartıyla istediğim elemanı nasıl çağırabilirim.

mesela 2. satır 2. sutun    dediğimde   mehmet  getirmesi gerekir..
burada satır ve sutun numaralarını  değişken ile girmek istiyorum.

awk ve sed ile yada grep ile istediğim   ismi satır veya sutundan alıyorum. ama satır ve sutun no vererek bu işi nasıl yapabilirim..
yardımlarınızı için teşekkür ederim...

heartsmagic

Doğrudan betik kodunun kendisini mi istiyorsun? Birazcık kabuk programlama bakınırsan yapılabilecek bir şey aslında bu. Değişken okutacaksın öncelikle iki tane, sonra bu değişkenleri tekrar betiğin içinde kullanacaksın.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

namruni

Hocam rica etsem sevinirim..Ben awk ile RM==$"satır"  diye bir parametre vererek hem satır hem sutun kontrolu yapmaya çalıştım ama nafile denemeler..

heartsmagic

Evet, birazcık karışık. Değişken okutma neyse de, sed ve awk ile çok içli dışlı olmayan için biraz zor. Kendimden biliyorum :)

@guopx'in örneğinden yola çıktığımızda sed olayı hallediliyor da awk'a parametre olarak değişkeni gönderince okuduğu parametreyi basıyor, sed'den aldığını değil. Çıkamadım işin içinden ben de tembelliğe vurdum:

echo "Satir:"
read satir
echo "Sutun:"
read  sutun
sed -n "$satir p" deneme.txt | cut -d' ' -f$sutun


awk gitti cut geldi.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

namruni


heartsmagic

Benim önerim ile olmadı mı?
Sen de nasıl hallettiğini aktar ki burada, bilgi birikimi olsun. Senin gibi bu konuda çözüm arayanlar yararlansın. Aktardıktan sonra da konuyu etiketlersin: cozuldukonusu
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.