根据匹配变量将文件Bash复制到子目录

阿瓦里

我有一个包含以下内容的目录:

/B7_001

/B7_002

B7_001_name.mat

B7_002_name.mat

此目录中的每个子目录都具有以下结构:

/B7_001/results_activity/sham/task/
/B7_002/results_activity/sham/task/

我想将每个文件复制或移动到与名称的第一部分匹配的子目录的子目录树中。

例如,将文件“ B7_001_name.mat”复制到/ B7_001 / results_activity / sham / task /中。

我的以下代码并没有取得太大的成功,因此任何提示将不胜感激。谢谢!

for i in B7_*
do
cp  ${i}_name.mat  /${i}/results_activity/sham/task/
done
gniourf_gniourf

尝试了解以下内容:

shopt -s nullglob # play it safe when using globs

for i in B7_*_name.mat; do
    echo "i=$i"
    d=${i%_name.mat}
    echo "d=$d"
    echo mv "$i" "/$d/results_activity/sham/task"
done

按原样运行,它是无害的,不会执行任何操作;只在终端上打印一些东西。

  • for i in B7_*_name.mat:这是一个for循环,变量i将连续获取与glob匹配的文件名B7_*_name.mat
  • 使用此变量,我们_name.mat使用shell参数扩展删除该部分:

    d=${i%_name.mat}
    

    这意味着d是扩展$i,其中拖尾(因为%_name.mat被去除。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用pathlib根据file.name将文件从子目录复制到其他子目录

如何将文件复制到子目录?

将文件复制到子目录

Python:将文件组复制到子目录

如何将匹配文件从目录/子目录复制到另一个目录

根据子目录名称将文件从特定子目录复制到单个目录中,然后重命名

将子目录的历史复制到父目录

如何使VSTS Build将文件复制到没有子目录的输出目录?

将文件复制到同一目录中的多个子目录

将特定文件从子目录复制到一个目录

将文件从多个子目录复制到同一目标目录

使用终端将内容/文件复制到目录中的所有子目录

如何将列表文件复制到目录或子目录列表

将文件复制到同一目录下的多个子目录

根据两个列表将文件从子目录复制并重命名到不同的子目录?

如何将文件复制到所有子目录?

将二进制文件从/ sourcedir及其子目录复制到/ destdir

如何将Meson中的文件复制到子目录

Linux将具有相同名称的子目录复制到文件

递归地将文件复制到所有最深的子目录

Windows Batch命令将文件复制到多个子目录

使用批处理脚本将特定文件从源目录复制到目标目录和子目录

将目录和子目录中的特定文件复制到mac中的目标文件夹中

在命令提示符下将文件的所有子目录递归复制到目录

将 css 文件从一个子目录复制到 CONTAINER BLOB 中的另一个子目录

使用通配符将多个文件从一个子目录复制到另一个子目录

将特定文件复制到新文件夹,同时保留原始子目录树

将文件从嵌套子目录中复制到另一个文件夹中

如何将文件复制到文件夹及其所有子目录中