我一直在試圖做一個sed替換。出於某種原因,我不能我的頭周圍sed和正則表達式(這是我第二次中美戰略經濟對話的問題)查找前後替換字符串
基本上我想找到並替換文本然後找一些文本的下一次出現並取代
到目前爲止,我有這個
echo "This could be anywhere and this bit should be changed \$\{hcvar-BookName\} and this would remain" | sed 's/$\\{hcvar-/" + hcvar-/g'
這將返回:
*This could be anywhere and this bit should be changed " + hcvar-BookName\} and this would remain*
不過,我想回到
*This could be anywhere and this bit should be changed " + hcvar-BookName + " and this would remain*
這將取代}與+「
的邏輯是這樣的:
Find: \$\{hcvar-
Replace with: " + hcvar-
Then find the next occurrence of: \}
Replace with: + "
第二位,以取代將是包含字符串之後:hcvar-
這應該適用於以下字符串的例子
- 這可能是任何地方,此位應改變 \ $ {hcvar-BOOKNAME},這將保持
- 這可能是任何地方, 此位應改爲\ $ {hcvar-somethingelse},這將 保持
- 這可能是任何地方,此位應改變
\ $ {hcvar-wouldnevercontainspaces},這將保持
任何幫助,將不勝感激。
在POSIX sed的'$'如果它不是替換命令的'pattern'部分中的最後一個字符,則爲文字。在許多方面,如果它是最後一個邏輯字符,'$'不會是字面的,即:'s/\(a \ | $ \)/ b /'將會替換'a'或空字節, B'。 – andlrc