我想将一个文件集合从一个目录移动到另一个目录。
我有一个.txt列表,其中包含我想移动的文件的PARTIAL名称(每行一个)。
示例:
- >文件名: “00012377000160-52200308419 -20100101-20101231-G-E92F9BA0A0C932C331273FCD845719813F0B617-1-GTOGR-FDS.txt”
- >我的.txt文件中的文件名是什么: E92F9BA0A0C932C331273FCD845719813F0B617
看起来很简单,我必须: 1-找到文件名称包含存储在我的.txt文件中的字符串 2-然后将它们移动到目录
但是.....我做错了什么(可能是扩展订单?)....
这就是我的尝试:
for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done
通配符*(PARTIAL文件名之后或之前的任何内容)不起作用....它被视为文件名的一部分,instaed
任何帮助都会被贬低!!!
答案 0 :(得分:3)
简单地说:
while read -r PART; do
mv *"$PART"*.txt /NEWDIR
done < list.txt
此外,虽然我不建议使用单词拆分,但使代码工作的方法只是将$符号与参数一起正确放置:
for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done