Khoa Ton <khoa@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