簡體   English   中英

如何逃脫sed中的方括號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM