gpt4 book ai didi

linux - 查找名称与多种模式之一匹配的文件并复制到不同的目录

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:47 24 4
gpt4 key购买 nike

我在 Linux 目录中有一组文件。我想将名称与多种模式之一匹配的文件复制到不同的目录;我将所有这些模式放在一个文本文件中。

有什么可能的方法可以找到所有具有该模式的文件并将其复制到目标文件夹?

到现在为止,我只能保持这样的模式:

find . -type f \( -name "*Patt1* -o -name "*Patt2*" - o -name "*Patt3*" \
-o -name "*Patt4*" -o -name "*Patt5* -o -name "*Patt6*" \) \
| xargs cp {} /home/DestinationFolder/.

我的模式文件如下所示:

PYTH
SPYD
ISIN
CUSIP
HELD
SEDO

最佳答案

您可以使用 grep 过滤文件名,使用 -f 选项从文件中读取模式:

find . -type f -print0 | grep -zFf pattern.txt \
| xargs -0 -I {} cp {} /home/DestinationFolder

根据您的评论,由于您的模式只是固定字符串,我们可以将 -F 添加到 grep 选项以将输入文件中的行解释为固定字符串。

为了容纳文件名中的任何可能字符,我使用 -print0 打印文件名,空字节分隔; grep -z 从空字节分隔流中读取和写入;并且 xargs -0 需要空字节分隔输入。

关于linux - 查找名称与多种模式之一匹配的文件并复制到不同的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48656487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com