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.