You wrote:

==========
#> grep -v "Position\|hand type\|^\t\t$" ArticulationsOrder.txt | grep
'[^A-Z]' # outputs just endlines
==========

When I downloaded your attached file, and converted the above
command to the following single, non-wrapped line (as I presume
you intended):

grep -v "Position\|hand type\|^\t\t$" ArticulationsOrder.txt | grep '[^A-Z]'

then I do NOT get just endlines. 

Rather I get the same useful output that you reported getting when
piping this output through "more".

_However_, in either case, each output line ends in a carriage
return '\r', which I suspect is the key to the problem you report.

Try the following:

    echo 'abc\r' 
    echo 'xyz\r' | more

When I do that, I see both the "abc" and the "xyz"

I'm guessing you'll see just a blank line and the "xyz".

Then, for your ArticulationsOrder.txt data, try the following command,
which may (I'm guessing wildly) work better for your purposes:

grep -E -v 'hand type|Position' ArticulationsOrder.txt | tr -d '\r' 

That second grep, the "grep '[^A-Z]'", does nothing that I can see,
on your data, since every line has at least one character that is
not an [A-Z] upper case letter, so every line matches that pattern.

I would suggest that using "grep -E" (or "egrep") is clearer
than using "grep" and escaping the '|' symbols.

-- 
                Paul Jackson
                p...@usa.net



Reply via email to