gpt4 book ai didi

macos - 执行此命令的 Mac OS X 方式是什么

转载 作者:行者123 更新时间:2023-12-04 19:12:58 25 4
gpt4 key购买 nike

我正在尝试执行此命令:

find ./ -type f -readable -writable -exec sed -i "s/A/B/g" {} \;

我收到了这个错误:
find: -readable: unknown primary or operator

我正在尝试广泛查找和替换名称为“A”到“B”的任何内容,这将适用于文件内的文件名和文本。

我在 Mac 终端上执行此操作的最佳方式是什么?

最佳答案

find 的 BSD 版本没有 -readable-writable初选,但您可以使用 test 伪造它们命令:

find ./ -type f -exec test -r {} -a -w {} \; -exec sed -i "" "s/A/B/g" {} \;

这里可能有问题 test的语法可能与三个以上的参数不明确,因此像这样的复合测试表达式可能会被错误解析。我认为以 ./ 开头的路径不会有问题。 ,但如果你担心它,你可以使用两个单独的测试:
find ./ -type f -exec test -r {} \; -exec -w {} \; -exec sed -i "" "s/A/B/g" {} \;

另外,请注意我在 sed 中添加了一个空参数。在 -i 之后.这是另一个 BSD-vs-GNU 的事情。 sed 的 BSD 版本 -i 需要一个参数(用于备份的扩展名)选项,因此为了避免进行备份,您必须明确提供空白。另一方面,GNU 版本会被 sed -i .bak 混淆。因为它需要 -i 的参数直接附加到它( sed -i.bak)。哇。

关于macos - 执行此命令的 Mac OS X 方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com