Ben bir dosyanın temel adının son 3 karakter bir sh komut dosyası bir değişken ayarlamak için çalışıyorum (taban adı ile yolu ve sonek olmadan demek ). Bunu yapmayı başardım ama tamamen meraktan, kullanabileceğim daha kısa, tek bir komut olup olmadığını merak ediyorum. Başlangıçta bir astar vardı awk, ama oldukça uzundu. Şu anda (tam bir dosya adı varsayalım) bu iki satır komut dosyası var $1:
filebase=`basename "$1"`
lastpart=`echo -n ${filebase%.*} | tail -c3`
Yani, örneğin, "/path/to/somefile.txt" ile biter kadar "göster ile" içinde $lastpart.
Bir şekilde birleştirebilir miyim basenameve son eki tek bir komut haline tailgetirebilir miyim? Sonek bilinmiyor, bu yüzden bir parametre olarak temel olamaz basename.
Asıl amaç, mümkün olduğunca kısa olmak, mümkün olduğunca kısa bir bakışta okunabilir olmak değildir. Tüm bunların gerçek bağlamı, oldukça basit bir cevap bulmaya çalıştığım Superuser ile ilgili bu soru .
twoişe yarar ; bunun uzantısı .threesanırım.
file.one.two.three? İstediğiniz misinizileyoksatwo?