角括弧[]を正規表現で置換
角括弧を置換したい
[abc]
[abc]
を
"abc"
にしたい。
エスケープすればいいよね?
$ echo [abc] | sed 's/[\[\]]/\"/g'
[abc]
$ echo [abc] | sed 's/[\[\]]/\"/g'
[abc]
おや。
正解
こちらによると、
$ echo [abc] | sed 's/[][]/\"/g'
"abc"
できた。
理由
はこちら
https://www.gnu.org/software/sed/manual/sed.html#Character-Classes-and-Bracket-Expressions
「sed, a stream editor」
の
「5.5 Character Classes and Bracket Expressions」
によると、
‘]’
ends the bracket expression if it’s not the first list item. So, if you want to make the ‘]’ character a list item, you must put it first.
ということで、] は最初に配置する必要があるらしい。
Author And Source
この問題について(角括弧[]を正規表現で置換), 我々は、より多くの情報をここで見つけました https://qiita.com/nanbuwks/items/c4646f90474c29db0b1d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .