Unix命令以递归方式搜索和替换文本

 鍾情噯伱_616 发布于 2023-02-06 18:45

我正在寻找一个UNIX命令,帮助我递归地从文件夹中的所有文件中搜索文本,并用新值替换它.在网上搜索后,我遇到了这个对我有用的命令.

找到./myFolder -type f -print0 | xargs -0 sed -i's/Application/whatever/g'

请帮助我理解上面的命令.我无法理解命令的这一部分:-print0 | xargs -0,这表明了什么?我只知道Unix中的基础知识,因此很难理解这一点.我正在使用bash shell.

还有任何替代命令在Unix中提供相同的功能,从谷歌搜索我得到了与Perl脚本相关的命令,我不知道Perl如此放弃了使用它的想法.

1 个回答
  • Also are there any alternate commands that provides same functionality in Unix

    是的,你可以做到这一切:

    find ./myFolder -type f -exec sed -i 's/Application/whatever/g' '{}' \;
    

    -exec选项find适用于:

    -exec utility [argument ...] ;
    如果名为utility的程序返回零值作为其退出状态,则为True.可选参数可以传递给实用程序.表达式必须以分号('';'')结束.如果从shell调用find,则可能需要引用分号,如果shell将其视为控件操作符.如果字符串''{}''出现在实用程序名称中的任何位置或参数中,则它将被当前文件的路径名替换.将从执行查找的目录执行实用程序.实用程序和参数不受shell模式和结构的进一步扩展的影响.

    2023-02-06 18:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有