Any help?

This is what I need to do to sort out the results from a script:

I know the first half is right, but the second half is what's getting me.
The file has 6 fields like this

word numbers numbers numbers numbers numbers

and I only care about finding numbers in the 6th field that have even numbers. It finds some but not all because when I cat the .txt I can see some of them didn't go over. I know I could copy the rest but I would like to understand how to do it the first time.

Here's what I have:

grep "^[A-Z].*[tcz].* [1-9][02468][0-9]*$" /home/public/data.txt | sort -nk3 | head -83 | tail -43 | sort -nk2 > ~/program.txt

I have cursed and strained over this for awhile. Anyone know what I am doing wrong?

Thanks in advance

Edited to make more sense.

Well you're doing a head and a tail, so you're deliberately removing some (arbitrary) results from the grep.

do you have field seperators in the file
if you have then it becomes easy to filter.

let me know

field seperators eh? I'm not sure how to do those, are those the things liek this
[0-9]{1,5}? The squiggly brackets?

And the head and tail, I threw in for fun because I was trying to see if I could make my pipe even longer and still work. The only thing I'm really concerned about is the grepping the numbers part, I don't seem to get all of them. If the squiggly's are field seperators I'll try them.

It would help if you could provide a bit more information in the following order:

  1. what you want to achieve in short words
  2. a significant sample of your input data
  3. a significant sample of the output you get right now
  4. a description of in which way the output you get deviates from the desired result

bakunin

Hi bakunin, it's for a C program I worte, I want to grep the results specifically.

  1. What I really want to achieve is find all the lines (I can figure out the piping of the sort stuff) that start with a capital at the beginning, have a 't', 'c', or 'z' anywhere in the word (although I know that part is correct, and the letters I just picked arbitrarily as part of the test) and then has an even number in the 6th field.

  2. Sample input from my program would be like:
    Shawn 12345 24 567 5 10102
    Matthew 12 5467 1111 9 1919
    Catherine 555 1234 1 1 33142
    thomas 66 7777 087 33 12121

  3. Sample output:
    Catherine 555 1234 1 1 33142

  4. The output only deviates in that I don't get ALL the lines because I compared the file I am grepping and the file I appended to and not all were there.

So I have for the grep:

grep "^[A-Z].*[tcz].* [1-9][02468][0-9]*$" /home/public/data.txt

Thanks for the replies.

Try :-

grep '^[A-Z][A-Z|a-z]*[tcz][A-Z|a-z]* .*[0-9]*[02468][0-9]*$' /home/public/data.txt

as your grep