是否可以使用sed可靠地轉(zhuǎn)義正則表達(dá)式元字符我想知道是否有可能編寫一個(gè)100%可靠的sed命令來(lái)轉(zhuǎn)義輸入字符串中的任何正則表達(dá)式元字符,以便它可以在后續(xù)的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。我會(huì)說(shuō)讓我們專注于基本的POSIX正則表達(dá)式,以獲得更多樂(lè)趣!:)我已經(jīng)嘗試了很多東西,但任何時(shí)候我都能找到一個(gè)打破了我的嘗試的輸入。我認(rèn)為保持它是抽象的,因?yàn)閟cript to escape不會(huì)導(dǎo)致任何人走錯(cuò)方向。順便說(shuō)一下,討論在這里提出來(lái)了。我認(rèn)為這可能是收集解決方案的好地方,可能會(huì)破壞和/或詳細(xì)說(shuō)明。
是否可以使用sed可靠地轉(zhuǎn)義正則表達(dá)式元字符
慕田峪7331174
2019-05-27 11:21:22