The egrep expression below fails because : in a range [...] is not quoted:
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint
Now, how to I fix that? Adding \'s does not work:
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint
Olga
P.S.: Glenn, thank you for grep --strict and sed --strict. I wish ksh
had an option to print such diagnostics for shell and extended regular
expressions.
--
, _ _ ,
{ \/`o;====- Olga Kryzhanovska -====;o`\/ }
.----'-/`-/ [email protected] \-`\-'----.
`'-..-| / http://twitter.com/fleyta \ |-..-'`
/\/\ Solaris/BSD//C/C++ programmer /\/\
`--` `--`
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users