regex - 在 SED 中转义正则表达式

标签 regex bash sed

我需要使用 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/

相关文章:

regex - sed 用下划线替换 2 个字符串之间的空格

javascript - 如何编写一个 javascript 正则表达式来用 html 超链接替换这种格式 [*](*) 的超链接?

正则表达式来测试某个单词是否恰好出现了 2 次

java - 仅当字符串中包含多个年份时才拆分字符串并创建自定义字符串

正则表达式/linux 查找命令未按预期工作

linux - 如何在日志文件中查找包含特定单词的行?

python - 无法在容器内启动 selenium 测试,WebDriverException :Chrome failed to start: exited abnormally

bash 脚本 : auto type command

bash - 从矩阵计算元素平均

linux - 根据格式从文件中批量提取行