16
Konuya ait anahtar kelimeler : Unix/Linux karakter sınıfları, Unix/Linux Karakter aralığı Hayatın her alanında kısa yolların bizlere avantaj sağladığını belirtmiştik. Uzun olarak anlatılabilecek bir kelimenin yada anlamın daha kısa şekilde belirtilebileceği durumlar bulunmaktadır. Herhangi bir klasör içerisindeki büyük harf ile başlayan dosya/klasör isimlerini yada rakamlardan oluşan bir ada sahip dosya/klasör isimlerini vb. listelemek isteyebilirsiniz yada buna benzer birçok durum olabilir. Karakter sınıfları kullanımı basitçe : [:CLASS:] şeklinde olmaktadır. Sizlerinde gördüğü gibi iki kapalı parantez içerisinde iki nokta arasına CLASS(karakter sınıfı) yazılarak kullanılır. Karakter sınıfları POSIX(Taşınabilir İşletim Sistemi Arabirimi) standartı ile tanımlanmaktadır.
  • alnum:
  • Alfanümerik karakterler. Büyük-küçük harf ve rakamlar.
  • alpha:
  • Büyük ve küçük harfler.
  • blank:
  • Boşluk karakteri. Space yada tab.
  • digit:
  • Rakamlar. [0-9]
  • graph:
  • Grafiksel karakterler. [:alnum:] ve [:punct:]
  • lower:
  • Küçük harfler. a b c d e vb..
  • print:
  • Yazdırılabilir karakterler.
  • punct:
  • Noktalama işaretleri. !'^+&/*?=(\-@ vb..
  • space:
  • Boşluk karakteri. tab, yeni satır, space vb..
  • upper:
  • Büyük harfler. A B C D E vb..
  • xdigit:
  • Hexadecimal(Onaltılı sayı sistemi) ABCDEF0-9
[alax@alax ~]$ ls [[:digit:]]* 2015-10-19-162419_1366x768_scrot.png 2015-11-13-021426_1366x768_scrot.png [alax@alax ~]$ ls 2015-10-19-162419_1366x768_scrot.png 2015-11-13-021426_1366x768_scrot.png calisma Desktop Documents Downloads Music Pictures tmp tux Videos VirtualBox VMs workalax [alax@alax ~]$
Yukarıda önce rakam ile başlayan dosya/klasörleri listeledik, sonra ise bütün dosyaları(gizli dosyalar hariç) listeledik. Şimdi benzer şekilde büyük harf ile başlayan dosya/klasörleri sadece üst klasör isimleri olacak şekilde, yani klasör içerisindeki dosya/klasörler hariç listeleme yapalım. Mesela "beyaz" adında bir klasör ve bu klasörün içerisinde "kırmızı" adında bir dosya var ise yalnızca üst klasör (beyaz) ismini listeleyelim, klasörlerin içerisindekileri lsitelemeyelim. Bunun için "ls" komutunu "-d" parametresi ile kullanmalıyız.
[alax@alax ~]$ ls -d [[:upper:]]* Desktop Documents Downloads Music Pictures Videos VirtualBox VMs [alax@alax ~]$
Yukarıdaki örneği "-d" parametresi olmadan kullanınız ve sonucunu gözlemleyiniz. Kısaca karakter sınıfları bu şekilde kullanılabilir. Karakter aralığı ise, karakter sınıfları kullanımına benzer şekilde kullanılır. Farklı olarak adından da anlaşılacağı üzere bir aralık belirtilmesi gerekmektedir. Mesela A ile E arasındaki harfler, 5 ile 9 arasındaki sayılar vb.. Şimdi a,b,c,d,e ile başlayan dosya/klasörleri listeleme işlemi yapalım.
[alax@alax ~]$ ls -ld [a-e]* drwxr-xr-x 3 alax alax 4096 Oct 23 00:11 calisma drwxr-xr-x 4 alax alax 4096 Oct 28 15:45 Desktop drwxr-xr-x 2 alax alax 4096 Oct 13 17:34 Documents drwx------ 2 alax alax 4096 Nov 13 23:01 Downloads [alax@alax ~]$
Şimdi a,b,c ve x,y,z ile başlayan dosya/klasörleri listeleme komutunu yazalım.
[alax@alax ~]$ ls -ld [a-cx-z]* drwxr-xr-x 3 alax alax 4096 Oct 23 00:11 calisma [alax@alax ~]$
Sonuçlar sizin dizin içerisinde sahip olduğunuz dosya/klasörlere göre yansıyacaktır. Bizim dizinimizde bu sıralamaya sadece "calisma" adındaki klasör girmektedir. Not: Karakter aralığı kullanımında büyük-küçük harf duyarlılığı yoktur. [a-cx-z] ifadesi aynı zamanda [aAbBcCxXyYzZ] anlamına gelmektedir. " * " yıldız karakterinin herhangi bir harf/kelime(ler) anlamına geldiğini unutmayınız.