我正在嘗試使用Android的shell編寫腳本來重命名給定擴展名的所有文件,以添加.bak擴展名,並將另一個擴展名刪除。Android中的多文件重命名
這適用於在目錄中添加.bak擴展到所有PDF文件使用${varname:index:length}
在Android外殼不起作用
ext=.bak
for f in *.pdf
do
mv $f $f$ext
done
但是bash的字符串的切片,所以我在虧損爲如何刪除擴展名。有沒有人有任何想法?
編輯:澄清,我試圖找到一種方法來刪除android外殼中的字符串的最後四個字符。我還沒有考慮過哪些解決我的具體問題的其他解決方案也是受歡迎的。
更新: 基於給定的答案,以下代碼將從未修改的Android shell中的當前目錄中擁有該擴展名的任何文件中刪除文件擴展名(其中.bak可以用您選擇的擴展名替換)
for f in *.bak
do
mv $f ${f%.*}
done
$ {varname:index:length}不起作用,所以我懷疑android shell沒有這種能力,但我會嘗試。 – 2012-07-22 21:41:58
它的作品!你能否指點我使用這種技術的字符串操作的參考? – 2012-07-23 00:41:55
http://tldp.org/LDP/abs/html/parameter-substitution.html#PSUB2我在bash正則表達式中發現了這個資源,這在Android shell中似乎是有效的。一般來說,我還沒有想過如何做字符串索引,但是這解決了我的問題!祝賀,賞金頒發。 – 2012-07-23 00:46:38