我正在尝试将文件集合从一个目录移动到另一个目录。

我有一个.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/

10-15 00:08
查看更多