英勇无比的脸盆 · Linux下Shell中日期格式使用_she ...· 5 天前 · |
低调的烈马 · 关闭当前窗口,在pyqt条件下打开新窗口-腾 ...· 6 月前 · |
深沉的野马 · PHP实现获取url地址中一级域名_php ...· 10 月前 · |
活泼的石榴 · 正则表达式 – 运算符优先级 | 菜鸟教程· 1 年前 · |
傲视众生的熊猫 · 使用 LSTM ...· 1 年前 · |
聪明的大脸猫 · 每天分享一个美女——冬月枫(冬月かえで) ...· 1 年前 · |
当我准确地在命令行中输入它时,以下内容工作得很好:
find /<some_path>/{epson,epson_laser,epson_inkjet} -iname "*.ppd"
-exec grep "\*ModelName\:" {} \; | sed 's/.*\"\(.*\)\"/\1/'
但是,当我试图从bash脚本调用以下内容时,我得到了
find: missing argument to -exec'
。
我还尝试了以下(在许多变体中):
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}"
展开为多个路径。有谁知道更好的解决办法吗?
如果您想在
find
的输出上执行多个命令,只需按需要多次使用
-exec
选项:
find -exec command1 "{}" \; -exec command2 "{}" \;
还可以定义执行选项的条件:
find \( -exec command1 \; -false -o -exec command2 \; \)
就你而言,你需要这样的东西:
find /<some_path>/{epson,epson_laser,epson_inkjet} -iname "*.ppd" -exec grep "\*ModelName\:" "{}" \; sed 's/.*\"\(.*\)\"/\1/' "{}" \;
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
活泼的石榴 · 正则表达式 – 运算符优先级 | 菜鸟教程 1 年前 |