我正在尝试将文件集合从一个目录移动到另一个目录。
我有一个.txt列表,其中包含要移动的文件的部分名称(每行一个)。
例:
->文件名:
“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文件名之后或之前的任何内容)不起作用....被认为是文件名的一部分,
任何帮助将不胜感激!
最佳答案
只是:
while read -r PART; do
mv *"$PART"*.txt /NEWDIR
done < list.txt
另外,尽管我不建议拆分单词,但使代码正常工作的方法仅仅是将$符号与参数一起正确放置:
for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done
关于linux - 从具有部分名称的.txt列表中移动文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19037743/