2010-12-10 13 views
21

Aşağıdaki python kodunu bash'a çevirmek istiyorum. Kod, uzantı adını .html olarak değiştirir ve açmak için Safari'yi çalıştırır.Uzantı adını bash ile bir dizede nasıl değiştirebilirim?

#!/usr/bin/env python 
import os.path 
import os 

oldName = $TM_FILEPATH 
(name, ext) = os.path.splitext(oldName) 
rename = name + ".html" 
os.system("open -a Safari %s" % rename) 

Dosya uzantısını bash ile nasıl değiştirebilirim? uzantıyı bilmek edersek

cevap

63
file=somefile.whatevs 
open -a Safari "${file%.*}.html" 
+3

Vay, bu zarif. –

+0

[Süper kullanıcı] 'da iyi bir açıklama var (https://superuser.com/a/1119299/347427): "%' = $ {variable% substring} "deseninde kullanıldığında, değişken içeriğiyle birlikte alt dizinin en kısa oluşu değişkenin arkasından silinir. " – bcattle

0

bunu şöyle geçiş yapabilirsiniz:

$ MY_FILE=file.html 
$ NEW_EXT=${MY_FILE/html/php} 
$ echo ${NEW_EXT} 
file.php 
+0

ya onun adı my_html_file.html ve benim my_html_file.php almak istiyorum? – Sergei

+0

daha sonra, 'new_ext = $ {my_file/.html/.php} 'uzantısını gösteren noktayla eşleşmesini yazabilirsiniz. – dinigo

İlgili konular