2010-12-10 78 views
21

我想將下面的python代碼翻譯成bash。該代碼將擴展名更改爲.html並運行Safari以打開它。如何使用bash更改字符串中的擴展名?

#!/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) 

如何用bash更改文件擴展名?

回答

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

哇,這是優雅的。 – 2013-09-07 00:24:36

+0

在[超級用戶](https://superuser.com/a/1119299/347427)上有一個很好的解釋:「當在模式'$ {variable%substring}中使用'%'時,它將返回變量的內容從變量後面刪除最短的子字符串「。 – bcattle 2017-04-03 04:43:05

0

如果你碰巧知道分機,你可以像這樣打開它:

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

如果它的名字my_html_file.html和我想要my_html_file.php怎麼辦? – Sergei 2017-07-10 14:28:28

+0

然後你可以寫替代來匹配指示擴展名'new_ext = $ {my_file/.html/.php}的點' – dinigo 2017-07-11 23:41:18

相關問題