Any help?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Any help?
# 1  
Old 12-01-2005
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.

Last edited by OmegaRed; 12-01-2005 at 11:43 PM.. Reason: to make more sense
# 2  
Old 12-02-2005
Well you're doing a head and a tail, so you're deliberately removing some (arbitrary) results from the grep.
# 3  
Old 12-02-2005
do you have field seperators in the file
if you have then it becomes easy to filter.

let me know
# 4  
Old 12-02-2005
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.
# 5  
Old 12-02-2005
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
# 6  
Old 12-02-2005
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.
# 7  
Old 12-02-2005
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
 
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question