根据文件在 shell 脚本中的名称组织文件夹中的文件

所以

我正在编写一个.sh文件,我/parent_folder/在 .sh的父文件夹运行它我运行一个命令,该命令创建了一个名为的子文件夹My_Sub_Folder,其中每个文件开头有数百个文件,Myfile_然后是一个数字,然后是_另一个数字,然后是许多其他字母,作为一个较小的例子,这些是一些文件名:

Myfile_1_1_3423423_MY.my
Myfile_1_2_3242343_MY.my
Myfile_1_3_5645654_MY.my
Myfile_2_1_3242354_MY.my
Myfile_2_2_4534535_MY.my
Myfile_2_3_2365464_MY.my
Myfile_3_1_5464567_MY.my
Myfile_3_2_4364766_MY.my
Myfile_3_3_4564564_MY.my

因此,如图所示,所有文件都Myfile_以数字递增计数开始,然后是_另一个计数递增数字,所以我想要做的是在里面创建子文件夹,My_sub_folder因此在上面的示例中,它下面将有三个子文件夹Myfile_1Myfile_2并且所有文件都从Myfile_3哪里Myfile_1开始与Myfile_1_*等等。关于如何做到这一点的任何建议?

这是我的脚本:

#!/bin/sh
myscript2.sh
DIR=$(pwd)
${DIR}/My_sub_folder
###I am not sure how I can then loop on the files and create the needed folders depending on their names as explained above then move them to the corresponding folder
罗艾马

像这样的东西,

#!/bin/sh
#
for file in My_Sub_Folder/*.my    # Files end with ".my" suffix
do
    dir="${file%_*_*_*.my}"       # Strip the pattern off the end of the filename
    mkdir -p "$dir"               # Create the directory unless it already exists
    mv "$file" "$dir/"            # Move the file to the directory
done

然后,您可以使文件可执行(在这种情况下,我称之为thescript

chmod a+x thescript

然后根据需要多次运行它

./thescript

要查看发生了什么,请插入以 开头的额外行echo例如,

echo "Creating directory: mkdir '$dir'"

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bash/Shell 脚本修改文件夹和子文件夹中的文件,但不修改文件夹名称

从Fish Shell中的路径中提取文件夹名称

在文件夹中运行“ N”个Shell脚本

运行文件夹中的所有shell脚本

在Shell脚本中检查/更改文件夹权限

根据文件类型将文件夹移动到相应文件夹的 Shell 脚本

使用Shell脚本在文件夹和子文件夹中执行命令

Linux Shell文件夹中的Zip文件夹

在Shell中浏览文件夹

如何制作shell脚本根据文件名将文件移动到单个文件夹?

Shell脚本:计算单个文件夹中特定类型扩展名中的文件数

shell脚本在文件夹结构中循环并执行shell脚本

Unix Shell脚本-将文件从父文件夹和子文件夹单独复制到新文件夹中

包含特定名称的文件夹中的Power Shell显示文件

使用基于文件夹或Shell脚本输出中存在的文件的参数创建Jenkins Matrix Job

如何执行命令并使用Shell脚本将文件存储在文件夹中?

Bash Shell脚本:以递归方式将文件夹中的TXT文件分类

Shell脚本可隔离分散在不同文件夹中的文件

如何读取Bash Shell中多个文件夹和子文件夹中的文件

For循环多个文件夹中的文件-Bash Shell

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

Shell脚本可将文件夹名称复制并添加到来自多个子目录的文件中

将文件组织到文件夹中,然后根据文件名组织子文件夹

如何删除Shell脚本文件中的特定if语句,并对单个文件夹内所有文件夹的所有文件执行相同的操作

Shell脚本从其父文件夹名称重命名多个文件

Shell脚本:当不存在具有相同名称的文件夹时删除文件

配置Windows PowerShell以在Shell提示符中仅显示当前文件夹名称

如何在目录中找到最新的日期文件夹,然后在Shell脚本中构造命令?

如何在red hat Linux shell脚本中获取指定用户的桌面文件夹