Limit on number of pipes after long-running command?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Limit on number of pipes after long-running command?
# 8  
Old 05-16-2019
No, that's not the issue: xinput test 6 definitely outputs to stdout. Proof is that xinput test 6 6>/dev/null produces output, but xinput test 6 1>/dev/null produces no output.

As I tried to explain, 6 in the command is an argument to xinput that tells it the input device I'm interested in testing. It is not a file descriptor.

Last edited by DevuanFan; 05-16-2019 at 12:31 PM..
# 9  
Old 05-16-2019
Might be due to buffering. Try as a zeroth approximation
Code:
xinput test 6 | awk -Winteractive '{print $3}'

This User Gave Thanks to RudiC For This Post:
# 10  
Old 05-16-2019
Both gawk and nawk complain: option `-W interactive` unrecognized, ignored.

But I think we're getting warmer. It does seem to have something to do with buffering.
# 11  
Old 05-16-2019
Quote:
Originally Posted by DevuanFan
Both gawk and nawk complain: option `-W interactive` unrecognized, ignored.

But I think we're getting warmer. It does seem to have something to do with buffering.
how about:
Code:
xinput test 6 | gawk '{print $3;fflush()}' | grep whatEver

# 12  
Old 05-16-2019
YES! That works. Is there a way to generalize this solution (e.g., at the level of the shell), so that things keep flowing down the pipe?

--- Post updated at 04:09 PM ---

Thank you, RudiC and vgersh99. It was a buffering issue. I found this helpful thread:
shell - Turn off buffering in pipe - Unix & Linux Stack Exchange

I can confirm that either of these pipelines work as expected:
Code:
stdbuf -o0 xinput test 9 | stdbuf -o0 grep release | awk '{print $3}'

Code:
unbuffer xinput test 9 | unbuffer -p grep release | awk '{print $3}'

This User Gave Thanks to DevuanFan For This Post:
# 13  
Old 05-16-2019
Quote:
Originally Posted by DevuanFan
YES! That works. Is there a way to generalize this solution (e.g., at the level of the shell), so that things keep flowing down the pipe?

--- Post updated at 04:09 PM ---

Thank you, RudiC and vgersh99. It was a buffering issue. I found this helpful thread:
shell - Turn off buffering in pipe - Unix & Linux Stack Exchange

I can confirm that either of these pipelines work as expected:
Code:
stdbuf -o0 xinput test 9 | stdbuf -o0 grep release | awk '{print $3}'

Code:
unbuffer xinput test 9 | unbuffer -p grep release | awk '{print $3}'

That's exactly the same thread I found Googling: Turn off buffering in pipe.
It's a combo of stdbuf/unbuffer/cat/script - multiple suggestions.
# 14  
Old 05-16-2019
Actually, for some reason it is not necessary to turn off buffering in the first command. Only in the second. In other words, these versions also work:

Code:
xinput test 9 | stdbuf -o0 grep release | awk '{print $3}'

Code:
xinput test 9 | unbuffer -p grep release | awk '{print $3}'

Guess I need to read up on buffering, since I'm stoked that we found a fix but don't fully understand why we don't have to unbuffer the first command.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk command input string too long, limit

cat filename| awk '{ $1=""; print $0}' in my file there are few lines that has more than 3000 characters per line and as soon as I run the above command it cores, strings core reveals that the awk is failing because input string too long, limit. can i get some help from the experts to find... (8 Replies)
Discussion started by: knijjar
8 Replies

2. UNIX for Beginners Questions & Answers

How to put a 80 character limit on a long topic line in markdown?

I have a topic line in markdown that spans more than 80 characters that i need to add a line break. Markdown is simply treating the line break as a brand new line instead of continuing as a topic line. Eg: # This is a very long line Markdown interprets it as This is a very long line (4 Replies)
Discussion started by: dragonpoint
4 Replies

3. UNIX for Dummies Questions & Answers

Limit process number in TOP command outupt

Linux top command prints more than 40 processes. top -b -n 1 > Top_Output.txt Is there a straight-forward option/way to limit only till the top 5 processes. ( Instead of using head, tail or other unix commands together) (1 Reply)
Discussion started by: vikram3.r
1 Replies

4. UNIX for Dummies Questions & Answers

Limit Number of files

hi guys how can i limit number of files in a disk or partition ? or how can i make a limit to inode number for a disk or partition ? ext3 or ext4 file system (1 Reply)
Discussion started by: mhs
1 Replies

5. Shell Programming and Scripting

While loop running after reaching limit

Hi frnds i am newbie in linux and trying to write a simple script for adding users.the problem is i am running a while loop under function and loop is running for 3 time more than limit.Here is my Script and output pls help me out : # CREATE N NO. OF USERS WITH PASSWORD IN SYSTEM #... (4 Replies)
Discussion started by: Vaibhav.T
4 Replies

6. UNIX for Advanced & Expert Users

Limit on Number of Cron Jobs Running on one Account

Hello, I have some 150 Cron Jobs running under my UNIX account. I want to add some more jobs. Is there a limit to the number of cron jobs that can be run on an account? Thank you. Pramodini (8 Replies)
Discussion started by: Pramodini Rode
8 Replies

7. Solaris

How to limit number of Commands

Is there a way that I can limit number of commands that one user can run during period of time. For example Max 10 commands per senconds.:) (3 Replies)
Discussion started by: winger0608
3 Replies

8. Shell Programming and Scripting

Counting the number of pipes in line

Hi, I'm using the ksh shell. The scenario: I have a couple of directories /home/fd /home/fd/prsd home/fd/stg now i have number of files in each of these directories. some of the files are zipped using gzip so their extension is .gz the content of the files is as follows ... (4 Replies)
Discussion started by: nirnay_s
4 Replies

9. UNIX for Dummies Questions & Answers

Number of long limit

Hi Hi! I'm currently using AIX 5.2 and would like to know where can i find to see that there's a restriction on the number of login times a user can have. Example, I want give a 2 login per user but some one to give 3 login and some one have to give unlit login time (without logging off the... (2 Replies)
Discussion started by: herath
2 Replies

10. Shell Programming and Scripting

How to limit the number of running instances of a script?

I would like to allow only one instance of a script to run at any moment. I've tried the following solution to count the instances but the result is always the number of running instances plus one and I can't find the problem ps -ef | grep $0 | sed '/^$/ d' | sed '/grep/ d' | wc -l Please... (2 Replies)
Discussion started by: oti
2 Replies
Login or Register to Ask a Question