SORU
29 Temmuz 2010, PERŞEMBE


bash script: yolundan sadece dosya adını almak

Nasıl uzantısı olmadan sadece dosya adı ve yolu olsun ki?

Aşağıdaki bana hiçbir uzantı verir ama ben hala yolun ekli:

source_file_filename_no_ext=${source_file%.*}

CEVAP
29 Temmuz 2010, PERŞEMBE


Çoğu Unix sadece bu amaç için basename yürütülebilir.

pax> a=/tmp/file.txt
pax> b=$(basename $a)
pax> echo $b
file.txt

Eğer bash-tek bir çözüm istiyorsanız, başlayabilirsiniz:

pax> a=/tmp/xx/file.tar.gz
pax> xpath=${a%/*} 
pax> xbase=${a##*/}
pax> xfext=${xbase##*.}
pax> xpref=${xbase%.*}
pax> echo;echo path=${xpath};echo pref=${xpref};echo ext=${xfext}

path=/tmp/xx
pref=file.tar
ext=gz

O küçük parçacığı xpath (dosya yolu), xpref (dosya öneki) ve xfext (dosya uzantısı) ayarlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006