Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Weird: unexpected result after piping a sort Post 302762513 by Perderabo on Monday 28th of January 2013 03:10:38 PM
Old 01-28-2013
Code:
$ rm * ; touch a b c ; bash -c "ls | sort > out" ; cat out
a
b
c
$ rm * ; touch a b c ; bash -c "ls | sort > out" ; cat out
a
b
c
$ rm * ; touch a b c ; bash -c "ls | sort > out" ; cat out
a
b
c
out
$

Sometimes I get it. Sometimes I don't. To implement the pipeline, the shell has two processes, one for ls and one for sort. There is no guarantee that the ls process will complete the directory read before the sort process opens its output file. It's a race condition that results in variable results. put the output file in another directory.

If you don't get variable results, try other shells or other platforms with more cpu's available. Or vary the other workload that the system is running while it runs your pipeline.

Anyway, ls sorts its output by itself.
This User Gave Thanks to Perderabo For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sort unexpected error?

I have the following script: mysort.sh: #!/bin/ksh for i in `ls` sort -bfu $i > sort_$i wait mv sort_$i $i wait done exit 0 I get the following error: mysort.sh: syntax error at line 3 : `sort' unexpected Does anybody know what I am missing here. ... (2 Replies)
Discussion started by: radhika
2 Replies

2. Shell Programming and Scripting

unexpected pipeline result with find -exec

Hi All, I probably miss something fundamental here. I want to rename a bunch of files in subdirectories (that might contain white spaces) with names that are related. I thought following could do the job: find . -name *.sh -exec mv {} $(echo {} | sed -e 's/0/1/g') \; Now to be able to... (5 Replies)
Discussion started by: blued
5 Replies

3. Shell Programming and Scripting

Unexpected sed result.

I am in the process of writing a script to change the grub password in the grub.conf file. I thought I had it figured out, but am running into an a problem I can't put my finger on. Command I am running when I find that the grub.conf file contains "password --md5". sed... (1 Reply)
Discussion started by: viRaven
1 Replies

4. Shell Programming and Scripting

sort piping to awk array - help please

Hi I'm just learning programming and need some help. I've taken a data file which has a list of numbers eg: 3 5 32 533 13 2 And I've used sort -n and to sort and then piped it to awk to arrange into an array. #!/bin/sh sort -n data.txt | awk ' { array=$1 } (4 Replies)
Discussion started by: EL_Chemso
4 Replies

5. Shell Programming and Scripting

shell script - unexpected result

I hv a file --am executing a script which is giving me unexpected results COntents of file: f1 CMT_AP1_CONT:/opt/sybase/syboc125:150:ASE12_5::Y:UX: CMT_AP1:/opt/sybase/syboc125:150:ASE12_5::Y:UX f1.tmp CMT_AP1_CONT:/opt/sybase/syboc125:150:ASE12_5::Y:UX:... (2 Replies)
Discussion started by: rajashekar.y
2 Replies

6. UNIX for Advanced & Expert Users

Weird "sort" behavior

Hi, I'm trying to sort a text file "test": S12 S_S12 S_S1_12 S15 S_N15 S_N1_15 By "sort test", I get: S12 S15 S_N1_15 S_N15 S_S1_12 S_S12 It seems weird: Comparing Line 2 and Line 3, it must be that '-' is bigger than '1'; however, comparing Line 3 and Line 4, it seems that... (3 Replies)
Discussion started by: intermilan
3 Replies

7. Shell Programming and Scripting

How to sort grep result based on timestamp?

Hi, Trying to sort grep result based on timestamp of the filename. I have the following result and want to sort them on timestampgrep -i 'ERROR' *log*2013* s_m_xxx_xxx_xxx_xxx_xxxx.log.20130906092431:TRANSF_1_1_1> DBG_21216 Finished transformations for Source Qualifier . Total errors ... (5 Replies)
Discussion started by: bobbygsk
5 Replies

8. Emergency UNIX and Linux Support

How to take awk result out (piping to other program)?

Hi! all here is my code which is working fine no errors but I want to know how to take result and input to other program awk 'FNR==1{i++}{LC=NR} {for(k=1; k<=NF; k++) A=$k} END{for (i=1;i<=LC;i++) { for(j=1;j<=LC;j++) if(A=='$UID' && A>='$MX'+A &&... (7 Replies)
Discussion started by: Akshay Hegde
7 Replies

9. UNIX for Beginners Questions & Answers

Sort by record column, Compare with conditons and export the result

Hello, I am new to Unix and would like to seek a help, please. I have 2 files (file_1 and file_2), I need to perform the following actions. 1 ) Sort the both file by the column 26-36 (which is Invoice number) what is sort command with the column sort? 2) Compare the file_1.sorted and... (3 Replies)
Discussion started by: Usagi
3 Replies

10. UNIX for Beginners Questions & Answers

Unexpected result from awk

Hello, Giving those commands: cat > myfile 1 2 3 ^D cat myfile | awk '{ s=s+$1 ; print s}' The output is: 1 3 6 It seems like this command iterates each time on a different row so $1 is the first field of each row.. But what caused it to refer to each row ?. What I mean... (3 Replies)
Discussion started by: uniran
3 Replies
TTYTYPE(5)						     Linux Programmer's Manual							TTYTYPE(5)

NAME
ttytype - terminal device to default terminal type mapping DESCRIPTION
The /etc/ttytype file associates termcap(5)/terminfo(5) terminal type names with tty lines. Each line consists of a terminal type, fol- lowed by whitespace, followed by a tty name (a device name without the /dev/) prefix. This association is used by the program tset(1) to set the environment variable TERM to the default terminal name for the user's current tty. This facility was designed for a traditional time-sharing environment featuring character-cell terminals hardwired to a UNIX minicomputer. It is little used on modern workstation and personal UNIX systems. FILES
/etc/ttytype the tty definitions file. EXAMPLE
A typical /etc/ttytype is: con80x25 tty1 vt320 ttys0 SEE ALSO
termcap(5), terminfo(5), agetty(8), mingetty(8) COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2012-12-31 TTYTYPE(5)
All times are GMT -4. The time now is 03:50 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy