我需要使用 Sed 进行搜索和替换。我将 /**#
替换为 define('WP_POST_REVISIONS', 3);\n\n/**#
。
但我无法找出正确的转义。即使在转义(显然需要的)单引号之后,我仍然收到 bash:在意外标记')'附近出现语法错误
在这种情况下正确的转义是什么?
最佳答案
尝试替换您的:
find /start/path -name *.html -exec sed -ie 's|/**#|define(\'WP_POST_REVISIONS\', 3);|g' '{}' \;
与:
find /start/path -name '*.html' -print0 \
| xargs -0 -n 1 sed -ie 's|/\*\*#|define('\''WP_POST_REVISIONS'\'', 3);\n/\*\*#|g'
并告诉我们它能为您带来什么
(我试图猜测您正在文件中寻找实际的字符串“/**#”...请给我们您真正在寻找的示例,如果它不是实际的字符串)
关于regex - 在 SED 中转义正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965993/