Android中的多个文件重命名

时间:2012-07-12 17:17:45

标签: android shell scripting

我正在尝试使用Android的shell编写脚本来重命名给定扩展名的所有文件以添加.bak扩展名,另一个用于删除它。

这适用于将.bak扩展名添加到目录

中的所有pdf文件
ext=.bak
for f in *.pdf
do
  mv $f $f$ext
done

但是使用${varname:index:length}的bash字符串切片在android shell中不起作用,所以我不知道如何删除扩展名。有没有人有任何想法?

编辑:澄清一下,我正试图找到一种方法来删除android shell中字符串的最后四个字符。我还没有考虑哪些解决方案可以解决我的具体问题。

更新: 基于给定的答案,以下代码将从未修改的Android shell中的当前目录中的任何具有该扩展名的文件中删除文件扩展名(其中.bak可以替换为您选择的扩展名)

for f in *.bak
do
    mv $f ${f%.*}
done

2 个答案:

答案 0 :(得分:1)

您是否尝试删除子字符串

fname="test.abc.bak"
mv $fname ${fname%.*}

由于

答案 1 :(得分:0)

我有一些代码,但它使用临时文件,只需尝试并检查您的用处

ls -l |awk '{print $9}' >/list
cat /list |while read line
do
echo $line >/tempfile
first=`cut -f1 -d'.' /tempfile`
echo $first >>/output.txt
mv $line $first
done