shell – 在“find -exec”中多次使用当前文件名(“{}”)?
发布时间:2020-12-15 19:08:21 所属栏目:安全 来源:网络整理
导读:许多消息来源说,{}的每个实例都将被找到的文件名替换,但是当我尝试运行以下操作时,我只得到一个文本文件,其名称为“.txt” find /directory -name "*pattern*" -exec cut -f8 {} {}.txt ; 目标是创建一个文本文件,只有每个文件中的第八列,每个文本文
许多消息来源说,{}的每个实例都将被找到的文件名替换,但是当我尝试运行以下操作时,我只得到一个文本文件,其名称为“.txt”
find /directory -name "*pattern*" -exec cut -f8 {} > {}.txt ; 目标是创建一个文本文件,只有每个文件中的第八列,每个文本文件将以其父文件命名。关于第二组{}的事情不会替换为每个找到的文件的文件名。
尝试:
find /directory -name "*pattern*" -exec sh -c 'cut -f8 {} > {}.txt' ; 但请注意,某些版本的find需要{}作为一个不同的参数,否则不会将{}扩展为文件名。你可以解决这个问题: find /directory -name "*pattern*" -exec sh -c 'cut -f8 $0 > $0.txt' {} ; (此替代命令将输出文件放在包含匹配文件的子目录中。如果需要,可以通过重定向到$ {0#* /} 问题是找不到重定向,shell是。您的命令完全相当于: # Sample of INCORRECT code find /directory -name "*pattern*" -exec cut -f8 {} ; > {}.txt 请注意以下标准: 如果存在仅包含两个字符“{}”的多个参数,则该行为是未指定的。 如果一个utility_name或参数字符串包含两个字符“{}”,而不仅仅是两个字符“{}”,那么它是实现定义的,无论find替换这两个字符,还是使用该字符串而不改变。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么@ContentChildren不会在我的自定义Angular 2下拉列表
- 在angular2中如何检测Ctrl A键按?
- angularjs – Angular:$apply已经在IE11中进行,但在FF和Ch
- 【数据结构】图的遍历及最小生成树
- 命令行 – 如何从dos2unix,perl,tr和sed不存在的文件中删除
- scala – 从服务器关闭akka-http websocket连接
- 《数据结构》必看知识点
- linux下文件形式的更新与回滚(增加回滚删除与新增后的回滚)
- Binary Serialization and BinaryFormatter with WebServic
- angularjs – 禁用$sce服务缺陷
推荐文章
站长推荐
- 如何使用angular2中的mat-input来汇总在mat-tabl
- 使用MetaWeblog接口来同步多个Blog
- scala – 如何使用Casbah在MongoDB上按对象ID查找
- 使用一些Scala Option方法的示例
- twitter-bootstrap – Twitter Bootstrap:旋转木
- Advanced Programming in UNIX Environment Epis
- scala – 如何执行SBT始终为项目依赖关系获取源?
- 从angularjs中的子状态视图隐藏父状态视图,最佳实
- 有没有办法知道在vim中打开(存在)`preview`窗口?
- angularjs – 实施宁静管理区域的角度安全风险是
热点阅读