coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why TAB in ansi color is not recognized?


From: Peng Yu
Subject: Re: Why TAB in ansi color is not recognized?
Date: Sun, 28 Apr 2019 15:39:57 -0500

Thanks. Where the `[ K` come from? I only see `[ m` but not `[ K`.
What does `[ K` mean? Thanks.

http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html

On Sun, Apr 28, 2019 at 2:49 PM Assaf Gordon <address@hidden> wrote:
>
> Hello,
>
> On 2019-04-28 11:23 a.m., Peng Yu wrote:
> >
> > In the 2nd example, it is not sorted as what I want. Why is it so?
> >
> > $ printf '%s\t%s\n' a 1 a 2 |grep --color=always a | sort -k 2,2nr
> > a     2
> > a     1
> > $ printf '%s\t%s\n' a 1 a 2 | grep --color=always a$'\t' | sort -k 2,2nr
> > a     1
> > a     2
> >
>
> The 'grep' in the second example highlights *both* the 'a' character
> and the 'tab' character.
>
> This means that the ANSI sequence to restore color (\033 [ m \033  [ K)
> appears *after* the tab, and is then parsed by 'sort' as the beginning
> of the second field:
>
> $ printf '%s\t%s\n' a 1 a 2 | grep --color=always a$'\t' | od -tc -An
>   033   [   0   1   ;   3   1   m 033   [   K   a  \t 033   [   m
>   033   [   K   1  \n 033   [   0   1   ;   3   1   m 033   [   K
>     a  \t 033   [   m 033   [   K   2  \n
>
> And annotated:
>
> First line, first field:
>     033   [   0   1   ;   3   1   m 033   [   K   a
>     \t
>
> First line, second field:
>     033   [   m 033   [   K   1
>     \n
>
> Second line, first field:
>     033   [   0   1   ;   3   1   m 033   [   K   a
>     \t
>
> Second line, second field:
>     033   [   m 033   [   K   2
>     \n
>
>
> Using "--debug" will give a hint as to what went wrong:
>
>    $ printf '%s\t%s\n' a 1 a 2 | grep --color=always a$'\t' \
>         | sort -k2,2nr --debug
>    sort: using ‘en_CA.utf8’ sorting rules
>    a>1
>             ^ no match for key
>    ________________
>    a>2
>               ^ no match for key
>    ________________
>
>
> The "no match for key" message means that the 2nd field failed to be
> parsed as a numeric value.
>
>
>
> regards,
>   -assaf
>


-- 
Regards,
Peng



reply via email to

[Prev in Thread] Current Thread [Next in Thread]