为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以使用sed可靠地转义正则表达式元字符

是否可以使用sed可靠地转义正则表达式元字符

慕田峪7331174 2019-05-27 11:21:22
是否可以使用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
提交
取消
意见反馈 帮助中心 APP下载
官方微信