是否可以使用sed可靠地转义正则表达式元字符我想知道是否有可能编写一个100%可靠的sed命令来转义输入字符串中的任何正则表达式元字符,以便它可以在后续的sed命令中使用。像这样:#!/bin/bash# Trying to replace one regex by another in an input file with sedsearch="/abc\n\t[a-z]\+\([^ ]\)\{2,3\}\3"replace="/xyz\n\t[0-9]\+\([^ ]\)\{2,3\}\3"# Sanitize inputsearch=$(sed 'script to escape' <<< "$search")replace=$(sed 'script to escape' <<< "$replace")# Use it in a sed commandsed "s/$search/$replace/" input我知道有更好的工具可以使用固定字符串而不是模式,例如awk,perl或python。我想证明是否有可能sed。我会说让我们专注于基本的POSIX正则表达式,以获得更多乐趣!:)我已经尝试了很多东西,但任何时候我都能找到一个打破了我的尝试的输入。我认为保持它是抽象的,因为script to escape不会导致任何人走错方向。顺便说一下,讨论在这里提出来了。我认为这可能是收集解决方案的好地方,可能会破坏和/或详细说明。
2 回答
- 2 回答
- 0 关注
- 861 浏览
添加回答
举报
0/150
提交
取消