【发布时间】:2018-06-26 07:34:38
【问题描述】:
在过去的 24 小时内,我花费了大量时间来尝试使该脚本正常工作。我在这里遇到了几个线程,这些线程指向正则表达式命令根本无法在终端中的 Mac 上运行。
find . -name '*.yml' -print0 | xargs -0 sed -i '' -e 's/^uuid.*\n/g'
此脚本应该遍历当前目录中的所有 yml 文件,并删除以 uuid 开头的行。
它根本不起作用。
我可以让它工作:
find . -name '*.yml' -print0 | xargs -0 sed -i '' -e 's/^uuid://g
但它只是从行中删除 uuid 部分,当我需要整行消失和空白时。
我已经测试了我的正则表达式here 和here,我相信它可以正常工作。
谁能指点我一些关于 macOS 和正则表达式的文档的方向?
【问题讨论】:
-
在第一个示例中,您的
sed命令不完整。它缺少一个斜线。 -
还有,我相信
\n可以去掉 -
正如 GolfWolf 所指出的,这并不是一个真正的正则表达式问题,而是一个
sed问题。 Whith 正则表达式可以很好地使用您当前使用的确切工具进行测试。 -
tripleee 的答案有效,我接受为正确答案。
标签: regex macos replace find xargs