【问题标题】:bash rename keep extension on file, name variablebash重命名保持文件扩展名,名称变量
【发布时间】:2015-04-17 18:46:33
【问题描述】:

随机有一个名为 image.jpg 的文件,但扩展名可以是其他文件..

我想用 bash 重命名这些文件

保留扩展名,但名称在包含变量中。

var1="猫"

var2="狗"

image.png -> cat.png
image.jpeg -> dog.jpeg

我想我应该在文件夹中查看名为 image *. *,复制扩展名,然后在新名称中使用变量名+扩展名。

     namefinal=$random

      ext=`echo $ls image*.*`

        echo $ext
        EXTENSION=`echo "$ext" | cut -d'.' -f2`

    echo $EXTENSION

mv $ext $random.$EXTENSION

完成!谢谢。

【问题讨论】:

  • 输入名到输出名的映射从何而来?你怎么知道在哪个文件上使用哪个名称?
  • 顺便说一句,在脚本中使用 ls 几乎总是错误的(原因在 mywiki.wooledge.org/ParsingLs 中),ls=/bin/ls 也是如此,然后使用 $ls 代替运行 ls (一般来说,对于任何命令;shell 会在第一次查找后自动进行缓存,所以自己做只会使您的脚本更难阅读并增加潜在的错误 - 没有显着的性能改进;主动使事情变慢 如果您使用 which 进行查找,这比让 shell 搜索 PATH 本身的开销更大)。

标签: bash


【解决方案1】:

假设$file 包含“image.png”:

mv "$file" "$var1.${file##*.}"

【讨论】:

  • 没有人要求你这样做。
  • @shoryunix,为什么你认为这些信息让你无法使用这个答案?
猜你喜欢
  • 2015-12-12
  • 2019-05-25
  • 2012-01-02
  • 2016-02-25
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多