Sponsored Content
Top Forums Shell Programming and Scripting Problem with pipes on infinite streams Post 302407979 by tokland on Saturday 27th of March 2010 12:04:56 PM
Old 03-27-2010
Problem with pipes on infinite streams

Here is an example code that shows the issue I have:

Code:
#!/bin/bash
counter() {
  seq 1000 | while read NUM; do
    echo $NUM
    echo "debug: $NUM" >&2 
    sleep 0.1 # slow it down so we know when this loop really ends
  done
}

counter | grep --line-buffered "[27]" | head -n1

Code:
debug: 1
debug: 2
2
debug: 3
debug: 4
debug: 5
debug: 6
debug: 7

If I understand it correctly, "head" finishes on the first match (as expected), but "grep" is not aware of it until it tries to write the next line (the second match). When it does, it finds out the pipe is closed so it also finishes.

That's normally not a problem, but if you have an infinite input stream containing only one match, it won't never stop. Any solution?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

STREAMS

Hi Everyone I am building some A Class HP boxes as web proxy servers, have just installed HP-UX 11.00 and am starting to configure one according to our standard build policy. However on the A Class I just happened to place the software depot this error message keeps popping up every 2 mins: ... (1 Reply)
Discussion started by: alwayslearningunix
1 Replies

2. Filesystems, Disks and Memory

PIPEs and Named PIPEs (FIFO) Buffer size

Hello! How I can increase or decrease predefined pipe buffer size? System FreeBSD 4.9 and RedHat Linux 9.0 Thanks! (1 Reply)
Discussion started by: Jus
1 Replies

3. UNIX for Dummies Questions & Answers

problem with pipes

I have written the following program. The function of this prog is to read data from a file(source.c) and write into another file(dest.c) using pipes. I have just written a line in the source file.Im able to compile and run the program without errors. But the data is not written onto the other... (2 Replies)
Discussion started by: afser
2 Replies

4. Shell Programming and Scripting

infinite while do loop problem

hi all, this is how my scrip looks like #!/bin/sh bindir='/opt/apps/script/bin' datadir='/opt/apps/script/data' dir='/opt/apps/script' while : ; do ls -1rt /opt/apps/script/data/check.txt*|tail -1 > /dev/null 2>&1 if ;then chmod +rwx $bindir/dummy2.sh ... (8 Replies)
Discussion started by: tententen
8 Replies

5. UNIX for Advanced & Expert Users

problem using pipes with "ls"

Hi all, I tried the following command $ find / -name xyx | ls -l so logically it should show the listing of directory xyz , assuming there's only one instance of xyz . But the above command shows the listing of current directory instead. I got the desired result using it in the... (4 Replies)
Discussion started by: bijeet_sunny
4 Replies

6. Programming

Problem with pipes

problem solved. (1 Reply)
Discussion started by: superfons
1 Replies

7. Shell Programming and Scripting

Problem with call of Java Programm & return code handling & output to several streams.

Hello Everybody, thanks in advance for spending some time in my problem. My problem is this: I want to call a java-Programm out of my shell skript, check if die return code is right, and split the output to the normal output and into a file. The following code doesn't work right, because in... (2 Replies)
Discussion started by: danifunny
2 Replies

8. Programming

please help a problem in client-server ipc message 2 pipes communication simple example

I want to have a message send & receive through 2 half-duplex pipes Flow of data top half pipe stdin--->parent(client) fd1--->pipe1-->child(server) fd1 bottom half pipe child(server) fd2---->pipe2--->parent(client) fd2--->stdout I need to have boundary structed message... (1 Reply)
Discussion started by: ouou
1 Replies

9. Programming

Problem with Pipes => Only works first pipe

Hi! I'm having problems with pipes... I need comunnications with childs processes and parents, but only one child can comunnicate with parent (first child), others childs can't. A brief of code: if(pipe(client1r)<0){ perror("pipe"); } ... (1 Reply)
Discussion started by: serpens11
1 Replies

10. Homework & Coursework Questions

Help with infinite loop problem

1. The problem statement, all variables and given/known data: My problem is an infinite loop when i press any other key other then Y or y in the while loop. what i want it to do is return to the normal script outside of it if pressing N or n or keep asking the same question if its any other... (4 Replies)
Discussion started by: Ren_kun
4 Replies
HOCR(1) 							   User Commands							   HOCR(1)

NAME
hocr - Hebrew OCR utility DESCRIPTION
Usage: hocr [OPTION...] - Hebrew OCR utility Help Options: -?, --help Show help options --help-all Show all help options --help-file Show file options --help-image-proccesing Show image proccesing options --help-segmentation Show segmentation options --help-debug Show debug options File options -O, --images-out-path=PATH use PATH for output images -u, --data-out=FILE use FILE as output data file name -C, --save-copy save a compy of original image -b, --save-bw save proccesd bw image -B, --save-bw-exit save proccesd bw image and exit -l, --save-layout save layout image -L, --save-layout-exit save layout image and exit -f, --save-fonts save fonts -F, --save-fonts-exit save fonts images and exit Image proccesing options -T, --thresholding-type=NUM thresholding type, 0 normal, 1 none, 2 fine -t, --threshold=NUM use NUM as threshold value, 1..100 -a, --adaptive-threshold=NUM use NUM as adaptive threshold value, 1..100 -s, --scale=SCALE scale input image by SCALE 1..9, 0 auto -S, --no-auto-scale do not auto acale image -q, --rotate=DEG rotate image clockwise in deg. -Q, --no-auto-rotate do not auto rotate image Segmentation options -c, --colums setup=NUM colums setup: 1.. #colums, 0 auto, 255 free -x, --slicing=NUM use NUM as font slicing threshold, 1..250 -X, --slicing-width=NUM use NUM as font slicing width, 50..250 -w, --font-spacing=NUM font spacing: tight ..-1, 0, 1.. spaced Debug options -g, --draw-grid draw grid on output images -d, --debug print debuging information while running -D, --debug-extra print extra debuging information -y, --font-filter=NUM debug a font filter, use filter NUM -Y, --font-filter-list print a list of debug a font filters -j, --font-num-out print font numbers in output text Application Options: -i, --image-in=FILE use FILE as input image file name -o, --text-out=FILE use FILE as output text file name -h, --html-out output text in html format -N, --no-gtk do not use gtk for file input and output -z, --font=NUM use font NUM -n, --no-nikud do not recognize nikud -v, --version print version information and exit libhocr-0.10.5-i686-pc-linux-gnu-12022008 http://hocr.berlios.de Copyright (C) 2005-2008 Yaacov Zamir <kzamir@walla.co.il> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. SEE ALSO gocr(1), ocrad(1), unpaper(1) hocr - Hebrew OCR utility February 2008 HOCR(1)
All times are GMT -4. The time now is 10:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy