linux - 使用 Linux bash 命令或脚本将编号文件复制到相应的编号目录

标签 linux bash copy

这应该是一个相对简单的问题,但我在 stackoverflow 中没有找到任何答案。在给定目录中,我有大约 1000 个已编号的文件(例如 chem-0320.inp)。我想将编号的文件 cp 到相应编号的目录;所有复制的文件都将被重命名为相同的名称。我想对指定数量的文件执行此操作(例如#'s 300-500)。

例如,我想将 chem-0320.inp 复制到名为 320 的目录中,并将其重命名为 mech.dat。 又如:将 chem-0430.inp 复制到名为 430 的目录中,并重命名为 mech.dat。

预先感谢您的帮助!

最佳答案

以下脚本将为您完成这项工作

for file in *.inp
do  
 dir=$(echo $file | sed -r 's/[^0-9]+0([0-9]+).*/\1/g')
 mv $file $dir/mech.dat 
done

关于linux - 使用 Linux bash 命令或脚本将编号文件复制到相应的编号目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26977014/

相关文章:

linux - 在嵌入式 Linux 上安全写入紧凑型闪存

python - Ubuntu 16,使用 Crontab 运行 Python 脚本

bash - 如何使用 awk 解析 Amazon S3 日志?

perl - 当我用 perl (ubuntu10.10) 执行脚本时出了点问题

c - 一次将一个字符的输入复制到输出的程序

linux - Linux下增量备份MySQL Workbench的脚本

linux - 有没有办法在 Unix 中删除文件中的重复 header ?

bash - 获取其他变量扩展的 quoted-dollar-at ( "$@") 行为?

Perl复制命令等待复制完成

C# - 读取/复制/替换文本中的行