Hhm, at a chrooted stable system image I get the expected output for 2.9: $ eix-test-obsolete | grep -v -e "^No " -e "^Skipping " -e "^$" The names of all installed packages are in the database. Installed packages with a version not in the database (or masked): [D] dev-libs/nettle (2.4@09/23/2011 -> 2.0): Low-level cryptographic library However at an unstable system version 2.10 gives : $ eix-test-obsolete brief | grep -v -e "^No " -e "^Skipping " -e "^$" The names of all installed packages are in the database. No redundant entries in /etc/portage/package.{,accept_}keywords No redundant entries in /etc/portage/package.mask No redundant entries in /etc/portage/package.unmask Skipping check: redundant entries in /etc/portage/package.use Skipping check: redundant entries in /etc/portage/package.env No redundant entries in /etc/portage/package.license Skipping check: redundant entries in /etc/portage/package.cflags All installed versions of packages are in the database. A simple test case however works : $ echo -e "abc\ndef\n" | grep -v -e "^def" abc Therefore I wonder if there is an unusual behavior of "eix-test-obsolete brief" or with grep ?? Reproducible: Always
Created attachment 299867 [details] output of eix-test-obsolete brief > Oops, got the attached file via $> eix-test-obsolete brief > x (eix 0.23.7) and it seems that this doesn't works at a stable Gentoo too as expected: $ cat x | grep -v -e "^No " -e "^Skipping " -e "^$"
load the file up into an editor and you'll see that there are ^G chars there: ^[]0;eix-test-obsolete: accept_keywords^GNo redundant entries in /etc/portage/package.{,accept_}keywords the issue is that your terminal is rendering things in such a way that it just looks like "No redundant ..." is the start of the line.
Well - this issue started with eix-0.23.7 whereas eix-0.24.3-r1 doesn't produce such output - so it is not only the terminal I think, or ?
run your grep test and pipe it to a file, then edit that file. you'll see chars that weren't visible in the terminal. then run `cat` on the file and see that again the chars are not there and it looks like lines start with "No". the file you posted does not violate the regex matching rules -- "No" did not start at the beginning of line (regardless of how the escape sequences caused the line to be displayed). you could try asking the eix author why they're playing tricks with the output
You are confused by the ANSI sequences to update the status line of the terminal - which you terminal "displays" by changing the status line (depending on your terminal, this is most likely the windows title). To suppress this output use the option -K. >=eix-0.23.8 will probably suppress this output always unless it goes to a terminal.
(In reply to comment #5) > To suppress this output use the option -K. Typo: I meant option -H