linux批量匹配移动文件的方法
需求
- 有需要移动的文件名清单 filename.txt
filename.txt 内容如下:
15542842
1582457
1282427
1532158
4542457
1582453
6552452
2.文件在files1文件夹下有filename.txt中的文件并以csv,txt,doc结尾
类似
15542842.txt 15542842.csv 15542842.doc
3.从files1文件夹移动到files2
实现方式
法一:
#!/bin/bash
for I in `cat filename.txt`
do
mv './files1/'$I* './files2/'
done
法二:
cat filename.txt|xargs -t -I {} mv './files1/{}.csv' './files2'
cat filename.txt|xargs -t -I {} mv './files1/{}.txt './files2'
cat filename.txt|xargs -t -I {} mv './files1/{}.doc' './files2'
法三:
import os
with open(filepath,'r') as file:
file_list = file.readlines()
for f in file_list:
try:
os.system('mv ' + '/files1/' + f+ '* ' + '/files2/')
except:
print('no such file', f)
continue