Khoa Ton <k...@puresynergy.com> wrote:

> I'm on Ubuntu:
>
> $ uname -a
> Linux nile 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 
> x86_64 x86_64 x86_64 GNU/Linux
>
> I can't seem to get grep to match lines with ] in them when using [ ] 
> expression.
> grep only matches two characters string "\]" instead:
>
> $ echo ']' | grep -E "[\]]" # supposed to return ] but doesn't
> $ echo '\]' | grep -E "[\]]" # incorrectly matches '\]' but not ']'
> \]
>
> Possible grep bug:
> grep doesn't seem to correctly handle escaped "\]" inside [ ] expressions.
>
> Thank you,
> Khoa

Grep doesn't support backslash escapes inside [...] (although awk does).

The correct way to do this is to place the ] as the first character
inside the [...], like so:

$ echo ] | grep -E '[]]'
]

HTH,

Arnold



Reply via email to