您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Mac和Linux上以递归方式搜索和替换文本文件

在Mac和Linux上以递归方式搜索和替换文本文件

OS X混合使用BSD和GNU工具,因此最好始终检查文档(尽管我less什至不符合OS X手册页):

https://web.archive.org/web/20170808213955/https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sed.1.html

sed将参数after -i作为备份的扩展名。提供空字符串(-i '')表示不进行备份。

应该执行以下操作:

LC_ALL=C find . -type f -name '*.txt' -exec sed -i '' s/this/that/ {} +

-type f只是个好习惯;如果给sed一个目录,sed会抱怨。 -exec优先于xargs; 您无需理会-print0或任何事情。将{} +在年底意味着find将所有结果作为参数添加的,而不是给被叫命令的一个实例,再运行它为每个结果。(一个例外是当操作系统允许的最大命令行参数数被破坏时;在这种情况下,find它将运行多个实例。)

其他 2022/1/1 18:16:04 有450人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶