重命名同一目录中的文件-Shell脚本

奥斯卡·赛因(Oscar Sayin)

我有一个名称为VERSION的数组,该数组是从mydir目录中获取的,并且具有如下参数(文件):

VERSION[0]="TEST01_0.TEST01_1"
VERSION[1]="TEST03_1"
VERSION[2]="TEST02_1.TEST02_2"
VERSION[3]="TEST04_2"
VERSION[4]="TEST02_3" 

我试图将TEST01_0.TEST01_1重命名为TEST01_1,并将TEST02_1.TEST02_2重命名为TEST02_2。但是出现以下错误:

mv: cannot stat `TEST01_0.TEST01_1': No such file or directory
mv: cannot stat `TEST02_1.TEST02_2': No such file or directory

你能帮我解决吗?这是我的代码块:

#!/bin/sh
VERSION=(/mydir/TEST*)
for file in "${VERSION[@]}"
do
    if [[ `echo ${file} | grep -o '_' | wc -l` == 2 ]]; then
    mv "${file}" "${file%.*}";
    fi
done

谢谢

伊尼安

造成这种情况的最好办法是从内部运行mydirbash如下,不依赖于任何第三方实用工具,比如cutgrep

#!/bin/bash

for file in T*
do 
    # Getting the string only containing '_' and if the count matches, 2
    # doing the file rename

    dashes="${file//[^\_]/}"
    if (( "${#dashes}" == 2 ))
    then 
        mv -v "$file" "${file%.*}"
    fi
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python 3:与脚本位于同一目录中的模块:“ ImportError:未命名模块”

无法解析来自同一目录中脚本的index.ts导入

使用Linux Shell脚本重命名多个文件

在重命名后将子子目录文件移动到父目录的Shell脚本

Shell脚本修改具有同一目录中多个文件的文件名的变量

尝试从同一目录中脚本外部的文件获取邮件接收者时无法发送邮件

使用package.json脚本在同一目录中复制多个文件?

根据同一目录中的不同文件重命名特定文件

Powershell脚本重命名目录中的所有文件

通过SSH Bash脚本将文件复制到具有附加文件名的同一目录中

如何使用位于脚本同一目录中的文件参数运行Shell脚本?

从同一目录中的其他python脚本导入python脚本的方法

使用Bash脚本重命名多个目录中的多个文件

Shell脚本重命名

通过Shell脚本重命名多个文件

使用Shell脚本在目录中调用一些不规则的命名文件

使用Shell脚本重命名文件

c shell脚本:find目录并重命名find的输出

Bash脚本重命名目录中的文件

批量重命名txt文件以匹配文件夹,都在同一目录中吗?

如何在同一目录中的多个文件上运行此Python 2.7脚本

Shell脚本检查文件年龄并重命名

使用Shell脚本重命名文件名

在目录的文件夹的Shell脚本数组中并在每个文件夹中显示文件中,重命名/删除选项

Shell备份脚本重命名

如何在脚本的同一目录中记录错误

压缩目录的 Shell 脚本

Shell脚本循环目录

通过在同一目录中提取文件 basename 来重命名目录