Bash'te Dosya Adını ve Uzantıyı Çıkarın

Giriş

Bash'te bir dosyanın dosya adını ve uzantısını çıkarmak isteyebileceğiniz birçok neden vardır:

  • Dosya adını veya uzantısını değiştirmek için – Dosya adına bir önek veya sonek eklemek veya dosya uzantısını değiştirmek gibi bir değişiklik yapmak için dosya adını veya uzantısını çıkarmak isteyebilirsiniz.

  • Benzersiz ada sahip bir dosya oluşturmak için – Dosya adına zaman damgası veya rastgele bir sayı eklemek gibi benzersiz bir ada sahip yeni bir dosya oluşturmak için dosya adını ve uzantısını çıkarmak isteyebilirsiniz.

  • Dosya adını veya uzantısını bir komut dosyasında veya komutta kullanmak için – Dosya adını veya uzantısını, bir programa aktarmak veya dizinle aynı adda bir dosya oluşturmak gibi bir komut dosyası veya komut için argüman veya girdi olarak kullanmak amacıyla çıkarmak isteyebilirsiniz.

  • Dosya adından veya uzantısından bilgi çıkarmak için – Tarih veya dosya türü gibi bilgileri çıkarmak için dosya adını veya uzantısını çıkarmak isteyebilirsiniz.

Bu makalede, Bash'te dosya adını ve dosya uzantısını çıkarmanın en yaygın üç yoluna göz atacağız. Her birine göz atacağız ve size artılarını ve eksilerini sunacağız, böylece hangi yaklaşımın size en uygun olduğu konusunda bilinçli bir karar verebilirsiniz.

Yöntem 1: kullanarak baz adı Komuta

The basename komutu, dosya adını ve uzantısını bir dosya yolundan çıkarmak için kullanılabilir:

filename=$(basename /path/to/file.txt)
echo $filename

Bu yöntem oldukça basit ve kullanımı kolay olsa da maalesef herhangi bir son işlem yapmadan yalnızca dosya adını (uzantısı olmadan) çıkarmamızın bir yolu yok.

Ayrıca kullanabilirsiniz dirname dizin yolunu ayrı olarak çıkarma komutu:

directory=$(dirname /path/to/file.txt)
echo $directory

Artıları:
  • Basit kullanımı
  • Boşluk içeren dosya adlarını doğru şekilde işler
Eksileri:
  • Yalnızca dosya adını ayıklar ve ek işleme gerek kalmadan uzantıyı ayrı olarak çıkaramaz

Yöntem 2: Parametre Genişletmeyi Kullanma

Bash adlı bir özellik sağlar parametre genişletmeözel bir sözdizimi kullanarak bir değişkenin parçalarını çıkarmanıza olanak tanır. Örneğin, bir değişkende saklanan dosya yolundan dosya adını ve uzantısını çıkarmak için aşağıdaki sözdizimini kullanabilirsiniz:

filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename

Uzantıyı ayrı olarak çıkarmak için parametre genişletmeyi de kullanabilirsiniz:

extension=${filename##*.}
echo $extension

Artıları:
  • Esnek
  • Hem dosya adını hem de uzantıyı ayrı ayrı çıkarabilir,
  • Boşluk içeren dosya adlarını doğru şekilde işler
Eksileri:
  • Dosya yolunu saklamak için bir değişken gerektirir

Yöntem 3: kullanarak awk komuta

The awk komutu, bir dizenin bölümlerini çıkarmak için kullanılabilecek güçlü bir metin işleme aracıdır. Örneğin, dosya adını ve uzantısını bir dosya yolundan çıkarmak için aşağıdaki sözdizimini kullanabilirsiniz:

filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename

En iyi uygulamalar, endüstri tarafından kabul edilen standartlar ve dahil edilen hile sayfası ile Git'i öğrenmek için uygulamalı, pratik kılavuzumuza göz atın. Googling Git komutlarını durdurun ve aslında öğrenmek o!

Ayrıca kullanabilirsiniz awk uzantıyı ayrı olarak çıkarmak için:

extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension

Artıları:
  • Güçlü
  • Hem dosya adını hem de uzantıyı ayrı ayrı çıkarabilir
  • Boşluk içeren dosya adlarını doğru şekilde işler
Eksileri:
  • Söz dizimi bazı kullanıcılara yabancı gelebilir
  • Dosya yolunun geçişini gerektirir awk

Sonuç

Genel olarak, Bash'te bir dosyanın dosya adını ve uzantısını çıkarmak, dosyalarla çalışmak ve Bash kabuğunda çeşitli görevleri gerçekleştirmek için yararlı bir teknik olabilir.

Bahsedilen yöntemlerin her birinin kendine özgü avantajları ve dezavantajları vardır ve en iyi seçim, özel ihtiyaçlarınıza ve tercihlerinize bağlı olacaktır. Durumunuza en uygun olanı seçebilmeniz için birden fazla yaklaşıma aşina olmak genellikle faydalıdır.

Zaman Damgası:

Den fazla Yığın kötüye kullanımı