Ubuntu按条件复制文件到新目录
目标:已知文件名,从目标文件夹中筛选出符合文件名的文件,并复制到新的目录中
- 存放了所需文件名称的.txt文件,结构如下
- 如果是在windows下创建的.txt文档,其文件格式是dos,在Ubuntu中使用会报错
修改ubuntu文件格式,参考:dos转unix格式
将.txt文件复制到ubuntu目标文件夹
进入末行模式vim xx.txt
set ff=unix
- 编写shell脚本
#!/bin/bash #按行读取包含文件名的.txt文档,复制给数组filanames #注意:shell赋值语句,等号左右不能有空格 filenames=($(cat xx.txt)) #${#filenames[*]}为filenames数组的元素个数 for i in $(seq 0 $((${#filenames[*]} - 1))) do echo ${filenames[i]} #find *.tiff是搜索当前文件夹中所有以.tiff结尾的文件 for var in $(find *.tiff) do if [[ ${var} == ${filenames[i]} ]] then cp ${var} ./目标文件夹 echo "copyed ${var}" else continue fi done done
参考内容:
- shell读取内容并转成数组:https://blog.csdn.net/jiexijihe945/article/details/125375251
- shell正则表达式比较字符串:https://blog.51cto.com/u_3078781/3287985