首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将循环变量传递给BASH find -regex参数?

将循环变量传递给BASH find -regex参数?
EN

Stack Overflow用户
提问于 2020-02-13 03:58:12
回答 3查看 112关注 0票数 0

我正在尝试通过find复制由REGEX表达式选择的图像。下面的命令会运行,但不会复制文件。如何将循环变量(例如读取文件行)传递给find -regex参数?

代码语言:javascript
运行
复制
cat hit_images_regex_list.txt | while read line; 
do 
find . -regex "${line}" -exec cp --parents {} /destination_dir \;
done

我从中提取REGEX表达式的hit_images_regex_list.txt文件如下所示:

代码语言:javascript
运行
复制
".*B - 12.*tif"
".*D - 09.*tif"
".*G - 03.*tif"
".*G - 12.*tif"
...

find与这些REGEX表达式一起使用是可行的,但是从我的.txt文件中提取REGEX表达式的循环不会做任何事情。

EN

回答 3

Stack Overflow用户

发布于 2020-02-13 08:36:56

代码语言:javascript
运行
复制
for i in $(cat hit_images_regex_list.txt); do find -name "$i" | cat -n | while read n f; do cp "$f" /newfolder/path/"$n".tig; done; done

这将打开该文件,并为每个正则表达式(行)查找所有匹配的文件并将其复制到新文件夹

这有帮助吗?

票数 0
EN

Stack Overflow用户

发布于 2020-02-13 08:42:44

尝尝这个。

代码语言:javascript
运行
复制
while IFS= read -r line; do
  find . -regex "$line" -exec cp --parents {} /destination_dir \;
done < hit_images_regex_list.txt
票数 0
EN

Stack Overflow用户

发布于 2020-03-31 16:39:56

人们已经花了时间去尝试和帮助。请对我们的回复进行礼貌评分

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60195982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档