首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查找:在bash脚本中缺少-exec的参数

查找:在bash脚本中缺少-exec的参数
EN

Stack Overflow用户
提问于 2012-12-20 10:35:51
回答 1查看 2.9K关注 0票数 0

当我准确地在命令行中输入它时,以下内容工作得很好:

代码语言:javascript
复制
find /<some_path>/{epson,epson_laser,epson_inkjet} -iname "*.ppd" 
  -exec grep "\*ModelName\:" {} \; | sed 's/.*\"\(.*\)\"/\1/'

但是,当我试图从bash脚本调用以下内容时,我得到了find: missing argument to -exec'

我还尝试了以下(在许多变体中):

代码语言:javascript
复制
eval find "$1" -iname "*.ppd" -exec 'bash -c grep "\*ModelName\:" "$1" | sed "s/.*\"\(.*\)\"/\1/" \;

正如在find-exec-echo-missing-argument-to-exec中提到的。如何不仅在终端中,而且在bash脚本中工作第一段代码?

P.S.:我只使用eval将字符串"/<some_path>/{epson,epson_laser,epson_inkjet}"展开为多个路径。有谁知道更好的解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-21 17:00:16

如果您想在find的输出上执行多个命令,只需按需要多次使用-exec选项:

代码语言:javascript
复制
find -exec command1 "{}" \; -exec command2 "{}" \;

还可以定义执行选项的条件:

代码语言:javascript
复制
find \( -exec command1 \; -false -o -exec command2 \; \)

就你而言,你需要这样的东西:

代码语言:javascript
复制
find /<some_path>/{epson,epson_laser,epson_inkjet} -iname "*.ppd" -exec grep "\*ModelName\:" "{}" \;  sed 's/.*\"\(.*\)\"/\1/' "{}" \;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13970205

复制
相关文章

相似问题

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