将文件移动到有例外的文件夹中

你的刺客

我在一个文件夹中有一组文件,我根据文件本身移动到子文件夹中。文件格式为:

Name_metadata_metadata_File.ext

使用这行代码:

for i in `ls | grep _`; do
    mkdir -p `echo $i | cut -f1 -d "_"`
    mv $i `echo $i | cut -f1 -d "_"`/`echo $i | cut -f5 -d "_"`
    mv $i `echo $i | cut -f1 -d "_"`/`echo $i | cut -f4 -d "_"`
done

我已成功将其转换为文件夹结构:

名称/文件.ext

我现在有一些文件(Name_str_metadata_metadata_File.ext)中有一个额外的字符串,我想把它们清除掉。我遇到了在我的代码行中添加 if 语句的问题:

for i in `ls | grep _`; do
    mkdir -p `echo $i | cut -f1 -d "_"`
    if `echo $i | cut -f2 -d "_"` == "str"; then
        mv $i `echo $i | cut -f1 -d "_"`/`echo $i | cut -f5 -d "_"`
    else
        mv $i `echo $i | cut -f1 -d "_"`/`echo $i | cut -f4 -d "_"`
    fi
done

我是否写错了 if 语句?

伊尼安

不要有意识地解析 的输出ls,请参阅BashFAQ - 为什么您不应该解析 ls(1) 的输出,它可能会以多种方式出错。使用 shell 支持的内置 glob 扩展

for file in *_*; do
    [ -f "$file" ] || continue
    mkdir -p "${file%%_*}" || { printf 'error creating dir\n' >&2; exit 1; }
    mv "$file" "${file%%_*}/${file##*_}"
done

"${file%%_*}${file##*_}"是参数扩展syntices用于从给定的分隔符的单词,在这种情况下是提取最早的和最远的字符串_请参阅Bash - 参数扩展 - 子字符串删除

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将子文件夹中的所有文件移动到父文件夹

来自分类Dev

将子文件夹中的所有文件移动到父文件夹

来自分类Dev

将文件移动到CMD中的父文件夹

来自分类Dev

将文件从文件夹移动到文件夹

来自分类Dev

如何使用bash将子文件夹中的所有文件移动到新文件夹中?

来自分类Dev

Windows-如何将子文件夹中的所有文件移动到父文件夹?

来自分类Dev

将包含字符串的所有文件从多个子文件夹移动到父文件夹中

来自分类Dev

如何将当前文件夹中的所有文件移动到子文件夹?

来自分类Dev

将图像移动到带有图像文件名的文件夹中

来自分类Dev

将具有特定语言的媒体文件移动到特定文件夹中

来自分类Dev

如何将文件移动到具有相同名称的相应文件夹中?

来自分类Dev

如何将所有与模式匹配的文件移动到文件夹中?

来自分类Dev

将文件移动到具有几乎相同模式的特定文件夹中

来自分类Dev

Shell脚本将所有文件从子文件夹移动到父文件夹

来自分类Dev

Shell脚本将所有文件从子文件夹移动到父文件夹

来自分类Dev

将嵌套文件夹的所有文件移动到其他文件夹

来自分类Dev

将 docker setup 移动到文件夹中

来自分类Dev

将javascript移动到assets文件夹中

来自分类Dev

如何将所有同级文件夹移动到一个文件夹中?

来自分类Dev

将所有在<time>之后修改的文件夹移动到新文件夹

来自分类Dev

将包文件夹移动到解决方案文件夹中

来自分类Dev

将除一个子文件夹外的所有子文件夹移动到该子文件夹中

来自分类Dev

将“视频”文件夹移动到HDD并在SSD中具有它的链接

来自分类Dev

如何将分散在文件系统中的所有同名文件移动到一个文件夹中?

来自分类Dev

将文件夹中的每个文件移动到以该文件命名的自己的文件夹中的批处理脚本?

来自分类Dev

批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

来自分类Dev

批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

来自分类Dev

将所有具有匹配前缀的文件移动到基于csv列表的文件夹中

来自分类Dev

将文件移动到不同的文件夹,忽略现有文件

Related 相关文章

  1. 1

    将子文件夹中的所有文件移动到父文件夹

  2. 2

    将子文件夹中的所有文件移动到父文件夹

  3. 3

    将文件移动到CMD中的父文件夹

  4. 4

    将文件从文件夹移动到文件夹

  5. 5

    如何使用bash将子文件夹中的所有文件移动到新文件夹中?

  6. 6

    Windows-如何将子文件夹中的所有文件移动到父文件夹?

  7. 7

    将包含字符串的所有文件从多个子文件夹移动到父文件夹中

  8. 8

    如何将当前文件夹中的所有文件移动到子文件夹?

  9. 9

    将图像移动到带有图像文件名的文件夹中

  10. 10

    将具有特定语言的媒体文件移动到特定文件夹中

  11. 11

    如何将文件移动到具有相同名称的相应文件夹中?

  12. 12

    如何将所有与模式匹配的文件移动到文件夹中?

  13. 13

    将文件移动到具有几乎相同模式的特定文件夹中

  14. 14

    Shell脚本将所有文件从子文件夹移动到父文件夹

  15. 15

    Shell脚本将所有文件从子文件夹移动到父文件夹

  16. 16

    将嵌套文件夹的所有文件移动到其他文件夹

  17. 17

    将 docker setup 移动到文件夹中

  18. 18

    将javascript移动到assets文件夹中

  19. 19

    如何将所有同级文件夹移动到一个文件夹中?

  20. 20

    将所有在<time>之后修改的文件夹移动到新文件夹

  21. 21

    将包文件夹移动到解决方案文件夹中

  22. 22

    将除一个子文件夹外的所有子文件夹移动到该子文件夹中

  23. 23

    将“视频”文件夹移动到HDD并在SSD中具有它的链接

  24. 24

    如何将分散在文件系统中的所有同名文件移动到一个文件夹中?

  25. 25

    将文件夹中的每个文件移动到以该文件命名的自己的文件夹中的批处理脚本?

  26. 26

    批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

  27. 27

    批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

  28. 28

    将所有具有匹配前缀的文件移动到基于csv列表的文件夹中

  29. 29

    将文件移动到不同的文件夹,忽略现有文件

热门标签

归档