tail, grep and cut


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting tail, grep and cut
# 1  
Old 03-03-2008
tail, grep and cut

Hello all,

I have some weird problem that kinda baffles me. Say I have the following test file:

Code:
claudia:~/tmp$ cat testfile.txt
This is a test line
This is the second test line
And yeah, this is the third test line

Then say I want to tail the file, grep for the word "third" then display only the 7th field. I would do some like this:

Code:
claudia:~/tmp$ tail -f testfile.txt | grep third | cut -d\  -f7

However, that does not work. I get no error, but no output either. If I leave out the "cut" part, then the grep works fine:

Code:
claudia:~/tmp$ tail -f testfile.txt | grep third
And yeah, this is the third test line

If I do the same with "cat" then it works fine, the expected output appears:
Code:
claudia:~/tmp$ cat testfile.txt | grep third | cut -d\  -f7
test

What am I doing wrong ?

Thanks,
Sylaan
# 2  
Old 03-03-2008
Question Confused about some of your syntax

What are you trying to accomplish with the tail -f command?
And then your grep "third"?

Are you simply trying to narrow your search to the last ten lines (default of the tail command), and then find the line with the word "third"? If so, try without the -f on the tail command.

By the way, I am not convinced that your example works fine when you think it does. The -f on the tail command would appear to keep the process running awaiting additional input.
# 3  
Old 03-03-2008
It was just an example to illustrate a real-world problem that I have.

Basically I need to tail a syslog file, grep for a certain pattern then display a certain field from the matched line. What I wanted to say with my example is that the "cut" after the "grep" is not producing anything, even though it should (as far as I can tell). It does not matter if I tail a syslog file or a testfile created by me, it should still work.

And sure, tail -f waits for more input but that does not matter, by default it should still list the last 10 lines or so from the file, which is plenty of input for my grep and cut.

--
Sylaan
# 4  
Old 03-03-2008
i will let others explain to you. in the meantime, you can try this out
Code:
# tail -f file | awk '/third/{print $7}'

# 5  
Old 03-03-2008
Quote:
Originally Posted by ghostdog74
i will let others explain to you. in the meantime, you can try this out
Code:
# tail -f file | awk '/third/{print $7}'

Nice, that works fine :-) Thanks. One more quick question: how would I print everything from the 7th field to the end of the line , in awk ? Something like cut's -f 7- .
# 6  
Old 03-03-2008
Question only one command piped after a tail -f ??

Trying this out on several files, because the -f keeps the process open, appears to therefore not allow any additional commands after the first pipe.
tail -f file | grep val1 >will work
tail -f file | grep val1 | grep val2 >will not work

but,
tail file | grep val1 | grep val2 > will work
# 7  
Old 03-03-2008
Quote:
Originally Posted by sylaan
Nice, that works fine :-) Thanks. One more quick question: how would I print everything from the 7th field to the end of the line , in awk ? Something like cut's -f 7- .
normally you use a for loop
Code:
tail -f file | awk '/third/{ for(i=7;i<=NF;i++) print $i }'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trouble with tail and grep

Good Morning, i ran into some trouble this morning while 'improving' my monitoring stuff. i would like to get a warning when the number of mails sent (outbound) by postfix is above a certain number. so far, so easy. to test that i simply put cat /var/log/mail.info | grep 'to=<' | grep -v -e... (1 Reply)
Discussion started by: Mike
1 Replies

2. UNIX for Dummies Questions & Answers

Tail -f | grep > output.txt

hi guys, I perform a sort of monitoring. I have a server running and with tail -f | grep "Searchstring"I monitor the log-file for recent specific entries. This is ok and works fine. Now, in addition I want to have my search results not posted into the shell but into a file. I tried: tail... (3 Replies)
Discussion started by: LaUs3r
3 Replies

3. Slackware

How should I cut this line using cut and grep?

not sure how to do it. wan't to delete it using cut and grep ince i would use it in the shell. but how must the command be? grep "64.233.181.103 wwwGoogle.com" /etc/hosts | cut -d the delimeter is just a space. can you help meplease. :D (1 Reply)
Discussion started by: garfish
1 Replies

4. UNIX for Dummies Questions & Answers

mulitple grep using tail

I have a basic tail/grep question. I have logs that are generated & kept in a directory called alert_audit. I am using "tail" to see the logs that are coming in, but I only need logs that contain the IP address 10.249.185. or 10.247.231. Here is the command I have, but it pulls all IP... (3 Replies)
Discussion started by: robertson1995
3 Replies

5. UNIX for Dummies Questions & Answers

Need help with a tail and a grep

I need to tail -f a file so I can monitor it as it is being written to. However, there is a lot of garbage in the file that I don't care about. So normally I would just pipe and grep for the string that is important to me. However, in this case, there are two things I need to grep for. I can't... (3 Replies)
Discussion started by: Silver11
3 Replies

6. Shell Programming and Scripting

Help with cut and tail

Hey!! I'm having a hard time getting this to work! I need to input a name and compare that name to a file in the file the name has a code on the same line as it, what i need is to compare the input name with the file and then output the code to a other file. Ex: ... (16 Replies)
Discussion started by: nogame11
16 Replies

7. Shell Programming and Scripting

tail | grep

The program that is running on my machine generates log files. I want to be able to know the number of lines that contain "FT" in the most recent log file. I wrote the following, but it always returns zero. And I know the count is not zero. Any ideas? ls -rt *.log | tail -n 1 | grep -c FT (6 Replies)
Discussion started by: sdilucca
6 Replies

8. Shell Programming and Scripting

Grep or Tail in shell script

Hi, I am writing a shell script that checks catalina logs on a production system and mails me if it detects errors. It greps the logs for known errors which i have defined as variables. The problem is the logs are huge, approx 30,000 before they rotate. So I am forced to use grep instead... (3 Replies)
Discussion started by: Moxy
3 Replies

9. Shell Programming and Scripting

tail | grep lagging badly

I'm trying to use tail/grep to monitor a log file. The command I cooked up is: tail -n 50 -f output.log | grep 'type:system' | cut -f 5- A sample line from the log file is: 1208894862 type:system session:0 severity:4 load started the columns are tab delimited. this works ok, except... (3 Replies)
Discussion started by: WasabiVengeance
3 Replies

10. UNIX for Dummies Questions & Answers

Help with tail /grep needed

Hello: I'm a very newbee at UNIX/AIX. What i want to do is to tail a file from the bottom until a certain string is found and write all the lines after the found string to another file. I've tried out a lot of combination with tail and grep but doesn't find the good one. Could someone help... (4 Replies)
Discussion started by: Felix2511
4 Replies
Login or Register to Ask a Question