如何使用bash脚本serieswise传输文件



有两种类型的文件

  1. Book1_20190715_1A.gz,

  2. Book1_20190715A.gz,

  3. Book2_20190716_1A.gz,

  4. Book2_20190716A.gz

    这里,2019年是07年是月份;15也是日期16。这里还有两种类型的文件_1A&A.

    需要在文件夹中按日期传输。还需要为不同类型的文件传输不同的文件夹,如_1A&A

如果Igrep像*_1A那样,则它传输_1A文件夹,但如果*A

What I do now. Please Help me.

你的问题不是很清楚,但我认为这就是你想要的:

#!/bin/bash
touch Book1_20190715_1A.gz
touch Book1_20190715A.gz
touch Book2_20190716_1A.gz
touch Book2_20190716A.gz
find . -type f -name "Book*" -print0 | while IFS= read -r -d '' file
do
# Remove "Book1_"
tempdirname=${file#*_}
# Remove ".gz"
dirname=${tempdirname%.*}
echo "$dirname"
if [[ ! -d "$dirname" ]]
then
mkdir "$dirname"
fi
/bin/mv "$file" "$dirname"
done
  • find列出所有名为Book*的文件,并将该列表发送到while循环
  • 从文件名中,使用变量展开提取目录名。首先删除";Book1_";,然后移除";。gz";。这给你留下了日期_1A〃;如果有的话
  • 如果目录不存在,则创建该目录
  • 将文件移动到目录中

相关内容

  • 没有找到相关文章

最新更新