是否可以使用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不會導致任何人走錯方向。順便說一下,討論在這里提出來了。我認為這可能是收集解決方案的好地方,可能會破壞和/或詳細說明。
是否可以使用sed可靠地轉義正則表達式元字符
慕田峪7331174
2019-05-27 11:21:22