![](/img/trans.png)
[英]How to escape closing square bracket within regular expression character class?
[英]How to escape square closing bracket in sed
我正在解析使用grep和sed的舊版C代碼,當嘗試替換方括號時,發生了一些奇怪的事情。
以下代碼替換方括號即可:
$ echo "xyx[xzx]xyx" | sed 's|[\\[]| |g'
結果是:
xyx xzx]xyx
當我現在將\\]
添加到sed的字符串中時,也要替換方括號,它將停止工作:
$ echo "xyx[xzx]xyx" | sed 's|[\\[\\]]| |g'
現在導致:
xyx[xzx]xyx
據我所知,這是逃避方括號的正確方法。
我究竟做錯了什么?
我正在Ubuntu 14.04機器上運行它。
您甚至不需要逃脫:
echo "xyx[xzx]xyx" | sed 's|[][]| |g'
xyx xzx xyx
但是請記住,然后[
]
順序在這里很重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.