gpt4 book ai didi

linux - 从文件中获取文件 glob 并找到这些文件

转载 作者:行者123 更新时间:2023-12-04 18:36:17 25 4
gpt4 key购买 nike

我有一个名为“file.txt”的文件,它包含 glob。内容:

*.tex
*.pdf
*C*.png
我需要从文件中获取这些扩展名,然后在当前目录中找到包含这些 glob 的文件(最好使用 find,其他任何东西也可以)。
我用了
grep "" file.txt | xargs find . -name 

但我收到此错误:
find: paths must precede expression: `*.pdf'

使用 Ubuntu

最佳答案

原代码需要-n 1要传递给 xargs 的参数,仅将一个 glob 传递给 find 的每个副本,因为每个 glob 表达式都需要以 -name 开头(并附加到任何其他 -name 表达式与 -o ,“或”运算符)。
更高效的是运行find只有一次,在构造一个将所有 -name 放入的表达式之后单个命令行上的运算符,用 -o 分隔s。

#!/usr/bin/env bash
# ^^^^- MUST be run with bash, not /bin/sh

find_expr=( -false )
while IFS= read -r line; do
find_expr+=( -o -name "$line" )
done <file.txt

find . '(' "${find_expr[@]}" ')' -print

关于linux - 从文件中获取文件 glob 并找到这些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68553173/

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