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