[Çözüldü] Klasördeki dosyalardan isminin sonundaki sayının en büyüğünü buldurma

Başlatan Chantre, 24 Ekim 2011 - 10:51:43

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Chantre

Merhaba,

Klasörümün içinde ismi belli bir şeyle başlayan (ABC diyelim) ve 01,02,...,10,11 gibi iki haneli sayıyla biten klasörler var. Ben bir script'in içinde son iki hanesindeki sayı en büyük olan klasörü buldurmak ve sonra onu kullanmak istiyorum. Script işinde oldukça acemiyim, öğrenmeye çalışıyorum ama bir yandan bunu da yapmam gerekiyor o yüzden yardım istedim.

Teşekkürler
When you play the game of thrones, you win or you die!

if


Chantre

Diyelim ki klasör ismini ABCXY13 olarak bulduk. daha sonra bu klasör ismini ln -s ABCXY13 ABC gibi bir komutta kullanacağım.
When you play the game of thrones, you win or you die!

if

Ben de pek bilmem ama beraber öğrenelim:)

#!/bin/bash
[/s]

Yanlıklıkla gitti:)

Chantre

Alıntı yapılan: if - 24 Ekim 2011 - 11:44:40
Ben de pek bilmem ama beraber öğrenelim:)

#!/bin/bash
[/s]

Yanlıklıkla gitti:)

bi yerden başlamak lazım tabii :)
When you play the game of thrones, you win or you die!

alquirel

Fikir yürütüyorum :)

Dosya isimleri aynı başlayıp sadece son iki hanesi numerik olarak değişiyorsa;

Uçbirimde dosya isimlerine göre sıralama yapan bir komutun çıktısını süzgeçleyip en üsttekini alsak?

hitokiri

Aslında daha basit bi şekilde olabilir gibi geldi bana ,
dosya aynı isimde olduğuna göre;
grep "dizin ismi" -c
komutuyla kaç tane o isimden dosya bulunduğunu öğreniriz zaten bu da en büyük değeri verir XD

$ls
Untitled Folder    Untitled Folder 3  Untitled Folder 5
Untitled Folder 2  Untitled Folder 4  Untitled Folder 6
$ ara="Untitled Folder"
$ tane=`ls|grep -c "$ara"`
$ echo "$ara $tane"
Untitled Folder 6

gerçi aramda en son bulunanda en büyük sayılı dizin olduğu için son bulunanı ayırmak daha mantıklı XD
$ ls|grep  "$ara"|tail -n1
Untitled Folder 6


Chantre

Alıntı yapılan: hitokiri - 24 Ekim 2011 - 23:21:03
Aslında daha basit bi şekilde olabilir gibi geldi bana ,
dosya aynı isimde olduğuna göre;
grep "dizin ismi" -c
komutuyla kaç tane o isimden dosya bulunduğunu öğreniriz zaten bu da en büyük değeri verir XD

$ls
Untitled Folder    Untitled Folder 3  Untitled Folder 5
Untitled Folder 2  Untitled Folder 4  Untitled Folder 6
$ ara="Untitled Folder"
$ tane=`ls|grep -c "$ara"`
$ echo "$ara $tane"
Untitled Folder 6

gerçi aramda en son bulunanda en büyük sayılı dizin olduğu için son bulunanı ayırmak daha mantıklı XD
$ ls|grep  "$ara"|tail -n1
Untitled Folder 6


ls|grep  "$ara"|tail -n1 oldu gibi görünüyor. script'in başka taraflarındaki problemleriyle görüşmek üzere, teşekkürler :)
When you play the game of thrones, you win or you die!