I have a problem at work which I have managed to break down into a simple test scenario:
I have written a monitoring script that outputs every second the status of various processes, but for now, lets just print the date
input.sh:
This will produce results ok for logging, but I have also started on a script that takes this input and processes it on the fly. For now, lets use...
output.sh
Now, make them executable etc and run them, piping input to output:
So that is my problem. Unsurprisingly, if you just grep the results of input.sh they are displayed every second.
I was wondering if, assuming I've been clear, anyone knew a reason for this and how to avoid it? My output.sh is supposed to update every second also, and currently it is displaying the updates in batches after long pauses. Is there a better way than while read to get the input from a pipe? Maybe that's it? I'm not a complete novice, but this is my first dealing with writing scripts that can be piped to.
I've tried with taking the delay out, although the delays are much reduced, they still exist. I've also tried the search here, other places, and google, but haven't found anything (though the search terms are pretty ubiquitous)
I had exactly the same problem with a script I wrote to put timestamps on some tail -f output - I kept getting bunches of lines with the same timestamp instead of them being processed in real time.
I ended up replacing grep with a small perl script:
[...]
I ended up replacing grep with a small perl script:
[...]
Hope that helps.
Annihilannic,
I appreciate the response, and it's good to know I'm not alone with the problem, but I'm writing this for what could be many boxes, including production servers where perl wont be available. That is of course secondary to the fact that there is already a tool that, as far as I know, should work fine. Apart from your workaround, did you find any information on *why* it might be happening?
which is primarily for logging purposes. The 'output' script was going to attempt to take the processes as they were output, and display running averages. As there are, in reality, many processes this will monitor and you would only need to actively monitor one t a time, I used a simple grep on it, which is when i noticed the issue.
Can I work around it? Sure. I can log to a file and tail that, for example, but I'm more curious as to why this is happening. This is less of a 'I have a problem and need a workaround' and more of a 'this is unexpected behaviour, does anyone have an explanation?' kind of query.
cat file
1 aaa
2 bbb
3 ccc
4 ddd
In TextEdit, I then copy the characters “ccc” to the clipboard. The problem is that the following command gives no output:
bash-3.2$ pbpaste | grep - file
Desired output:
3 ccc
What should the syntax be for that command? I am using MacOS El... (3 Replies)
Hi guys.
You'd have to excuse me a bit, as I'm a noob. I really try to avoid asking questions and do research for whatever linux issues that may arise.
I am experiencing a long wait for the shell to come up when I ssh or telnet into a Sunos 5.10 environment.
It takes 70 seconds to give me... (12 Replies)
Hi,
I have a number of files containing the information below.
"""""
Fundallinfo
6.3950 14.9715 14.0482
"""""
I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Hi everybody,
I have a big file with blast results (if you know what this means, otherwise look at it just as a text file with a specific form).
I am trying to extract some ids from within this file, which have certain parameters.
For example, some Of my IDs have the term 'No hit results'... (6 Replies)
Hi everybody,
I have a big file with blast results (if you know what this means, otherwise look at it just as a text file with a specific form).
I am trying to extract some ids from within this file, which have certain parameters.
For example, some Of my IDs have the term 'No hit results'... (1 Reply)
$>cat file.txt
123 d3
234 abc 3
zyf 23
124 def 8
ghi kz0
...
...
I have the following output on the screen through <some command>.
$> <some command>
abc
def
ghi
...
...
I have to search for each of these patterns in the file.txt and print the lines in file.txt matching the... (4 Replies)
Hi,
I need to use a double grep so to speak. I need to grep for a particular item say BOB and then for each successful result I need to grep for another item say SMITH.
I tried grep "BOB" filename | grep "SMITH"
but it does not seem to work.
I can achieve my desired result using an... (12 Replies)
Howdy folks,
I am fairly new to scripting but have lost of expirience in c++, pascal, and a few other. I am trying to complete a file search script that is sent a file name containing data to search that is arranged like this
"id","name","rating"
"1","bob","7"
etc
and an argument to... (1 Reply)
While installing a firewall, I was pinging the interface from SCO 5.0.6 Openserver box, while no response, I hit "DEL" to cancel, but no cancel. Then all of a sudden I get BOO-KOO traffic lights on HUB and Switch.... Then a kernel trap error. System froze... Proceeded with a cold boot. Now I have... (8 Replies)