4

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

这适用于将 .bak 扩展名添加到目录中的所有 pdf 文件

ext=.bak
for f in *.pdf
do
  mv $f $f$ext
done

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

编辑:澄清一下,我正在尝试找到一种方法来删除 android shell 中字符串的最后四个字符。我还没有考虑过其他可以解决我的特定问题的解决方案也受到欢迎。

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

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

2 回答 2

1

您是否尝试过删除子字符串

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

谢谢

于 2012-07-20T11:35:45.143 回答
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
于 2012-07-12T17:40:41.037 回答