Re: Grep with non-ascii

From: Eivind Nicolay Evensen <eivinde_at_terraplane.org>
Date: Fri, 03 Feb 2023 14:18:53 UTC
Den Fri, 3 Feb 2023 19:12:32 +0700
skrev Eugene Grosbein <eugen@grosbein.net>:

> 03.02.2023 17:06, Eivind Nicolay Evensen wrote:
> > Hello.
> > 
> > I just noticed this today:
> >   
> > elg!ene[~]> printf "b\nhei\nl\n" | grep   
> > grep: trailing backslash (\)  
> > elg!ene[~]> echo $LC_CTYPE $LANG  
> > nb_NO.ISO8859-1 nb_NO.ISO8859-1
> > 
> > While I have the result I envisioned with gnugrep:
> >   
> > elg!ene[~]> printf "b\nhei\nl\n" | ggrep   
> > b
> > l
> > 
> > Also, on OpenIndiana, linux and Netbsd, grep gives the proper
> > result.
> > 
> > Is lib/libc/regex the right place to look into this if I
> > find the time, or does anybody know this enough to know the
> > problem?  
> 
> Try single quotes instead of double quotes.
> And pleace specify system version and shell name, and shell version
> if its not in base system.

This is
elg!ene[~]> uname -a
FreeBSD elg.hjerdalen.lokalnett 13.2-PRERELEASE FreeBSD 13.2-PRERELEASE
#1: Tue Jan 31 11:23:29 CET 2023
ene@elg.hjerdalen.lokalnett:/usr/obj/usr/src/amd64.amd64/sys/ENE-spurv
amd64

Using the tcsh that comes with it. But I don't think the quotes matter
much because of this:

elg!ene[~]> grep 
grep: trailing backslash (\)

The output was more just to have something to look for, like
with ggrep but anyway:

elg!ene[~]> printf 'b\nhei\nl\n' |grep 
grep: trailing backslash (\)

And obviously:

elg!ene[~]> printf 'b\nhei\nl\n' 
b
hei
l

And it seems to be the same for any 8859-1 character not part
of ascii:

elg!ene[~]> grep 
grep: trailing backslash (\)
elg!ene[~]> grep 
grep: trailing backslash (\)
elg!ene[~]> grep 
grep: trailing backslash (\)

-- 
Eivind Nicolay Evensen