bash脚本重命名多个文件

炸药

假设我有一堆这样的文件:bsdsa120226.nai bdeqa140223.nai,我想将其重命名为120226.nai 140223.nai。如何使用下面的脚本实现此目的?

#!/bin/bash
name1=`ls *nai*`
names=`ls *nai*| grep -Po '(?<=.{5}).+'`
for i in $name1
    do
    for y in $names
        do
            mv $i $y
        done
    done



Solution:
name1=`ls *nai*`

for i in $name1
do
y=$(echo "$i" | grep -Po '(?<=.{5}).+')
mv $i $y
done

仅使用bash,您可以执行以下操作:

for file in *nai* ; do
  echo mv -- "$file" "${file:5}"
done

echo对输出满意时候删除。)

避免ls在脚本中显示信息。请改用普通水珠。

另请参阅如何在bash中进行字符串操作?有关更多的字符串操作技术。


您的脚本无法使用该结构:如果您有5个文件,它将mv对第一个文件调用五次(第二个列表中的每个元素一次),对第二个文件五次,依此类推。您需要进行迭代紧紧围绕两组名称。(它也不处理文件名中的空格等问题。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Bash脚本重命名多个文件

来自分类Dev

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

来自分类Dev

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

来自分类Dev

重命名bash脚本中的文件

来自分类Dev

Bash脚本根据大小重命名文件

来自分类Dev

自动执行重命名文件bash脚本

来自分类Dev

重命名bash脚本中的文件

来自分类Dev

重命名bash脚本中的文件

来自分类Dev

重命名文件Bash脚本-循环问题

来自分类Dev

使用Bash重命名多个文件

来自分类Dev

重命名多个文件,Bash脚本,最好添加一个名称

来自分类Dev

使用bash脚本通过增加常量的尾随数量来重命名多个文件

来自分类Dev

重命名多个文件?

来自分类Dev

重命名多个文件

来自分类Dev

重命名多个文件

来自分类Dev

Bash脚本从文本文件源重命名文件

来自分类Dev

Bash重命名文件

来自分类Dev

Linux Shell脚本可复制并重命名多个文件

来自分类Dev

如何使用命令或脚本重命名多个文件

来自分类Dev

使用重命名重命名多个文件

来自分类Dev

在bash shell脚本中,如何重命名多个文件,仅保留数字和原始文件名的扩展名?

来自分类Dev

Bash脚本来查找,处理和重命名文件?

来自分类Dev

Bash脚本重命名一堆文件夹

来自分类Dev

Bash脚本重命名文件扩展名

来自分类Dev

Bash脚本来查找,处理和重命名文件?

来自分类Dev

重命名bash脚本-否无此类文件或目录错误

来自分类Dev

重命名bash脚本-否无此类文件或目录错误

来自分类Dev

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

来自分类Dev

重命名+移动Bash脚本中的嵌套文件