相关疑难解决方法(0)

用文件名中的下划线替换点,保持扩展名不变

我有一个 bash 脚本,我试图用它来替换文件名中的点并用下划线替换它们,使扩展名保持不变(顺便说一句,我使用的是 Centos 6)。从下面的输出中可以看出,当有一个点要替换时,脚本会起作用,但在唯一的点是扩展名的情况下,脚本仍会尝试重命名文件,而不是忽略它。谁能指出我应该如何更好地处理这个问题?谢谢你的帮助。

我的(错误的)脚本:

#!/bin/bash

for THISFILE in *
do
  filename=${THISFILE%\.*}
  extension=${THISFILE##*\.}
  newname=${filename//./_}
  echo "mv $THISFILE ${newname}.${extension}"
  #mv $THISFILE ${newname}.${extension}
done
Run Code Online (Sandbox Code Playgroud)

样本输入:

1.3MN-Pin-Eurotunnel-Stw505.51.024-EGS-130x130.jpg
Wear-Plates.jpg
Run Code Online (Sandbox Code Playgroud)

输出:

mv 1_3MN-Pin-Eurotunnel-Stw505_51_024-EGS1-130x130.jpg 1_3MN-Pin-Eurotunnel-Stw505_51_024-EGS1-130x130.jpg
mv Wear-Plates_jpg.Wear-Plates_jpg Wear-Plates_jpg.Wear-Plates_jpg
Run Code Online (Sandbox Code Playgroud)

filenames rename

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

filenames ×1

rename ×1