代码之家  ›  专栏  ›  技术社区  ›  silvio

从具有部分名称的.txt列表中移动文件

  •  2
  • silvio  · 技术社区  · 12 年前

    我正在字符串中将文件集合从一个目录移动到另一个目录。

    我有一个.txt列表,其中包含我要移动的文件的PARTIAL名称(每行一个)。

    例子:

    ->文件名: “00012377000160-52200308419-20100101-20101231-G-E92F9BA0C932C331273FCD8457719813F0B617-1-GTOGR-FDS.txt”

    ->我从.txt文件中的文件名中得到的内容: E92F9BA0A0C932C331273FCD845719813F0B617

    这看起来很简单,我必须: 1-找到文件名包含存储在我的.txt文件中的字符串 2-然后将它们移动到目录

    但是我做错了什么(也许是扩展订单?)。。。。

    我就是这样尝试的:

    for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done
    

    通配符*(PARTIAL文件名之后或之前的任何字符)不起作用。。。。它被认为是文件名instad的一部分

    任何帮助都将被感激!!!

    1 回复  |  直到 12 年前
        1
  •  4
  •   konsolebox    12 年前

    简单地说:

    while read -r PART; do
        mv *"$PART"*.txt /NEWDIR
    done < list.txt
    

    此外,尽管我不建议分词,但让代码正常工作的方法只是将$符号与参数一起正确放置:

    for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done