Weird: unexpected result after piping a sort


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Weird: unexpected result after piping a sort
# 1  
Old 01-28-2013
Weird: unexpected result after piping a sort

Hello,

And when you think you know the basics of something, UNIX in this case, something like what I will describe below comes along....

On a Linux system, a "typical" directory with some files. Say 20.
I do:

Code:
> ls | sort > mylisting

Now when I:
Code:
> vi mylisting

There is mylisting in the list of files in the directory.

I always though the pipe redirections were "linear".

Any explanations would be appreciated.

=S

Last edited by Scrutinizer; 01-28-2013 at 03:56 PM.. Reason: code tags
# 2  
Old 01-28-2013
Pls ignore this box, as the question was not very clear to me at first attempt.

Last edited by rveri; 01-28-2013 at 04:20 PM..
# 3  
Old 01-28-2013
It should not be in the list. I guess the file: mylisting was already present in the directory. Can you remove file: mylisting and rerun?
Code:
rm mylisting
ls | sort > mylisting

# 4  
Old 01-28-2013
Thanks but I am not that "bad" !.. Smilie
That was the first thing I checked.
Removed the created one and rerun..... same result!

=S
# 5  
Old 01-28-2013
sorry I misunderstood in first question.Can you put exact output, how mylisting is coming in the list of file. Or try from another directory. The output file name should not be coming in the redirection.
# 6  
Old 01-28-2013
@revri:
I am not sure I understant exactly you explanation but yes. it seems so.

Tested it on two installations as well. Same result for both.
Here they are:
1. Linux comet 2.6.32-41-generic #89-Ubuntu SMP Fri Apr 27 22:18:56 UTC 2012 x86_64 GNU/Linux
2. Linux testserv 2.6.18-6-686-bigmem #1 SMP Thu Nov 5 17:30:05 UTC 2009 i686 GNU/Linux

-S

---------- Post updated at 02:38 PM ---------- Previous update was at 02:33 PM ----------

OK here is a recipe for all to try.
I tried it on 2 systems. One a "pure" Ubuntu.
Check "before and after" to make sure that there are no "rogue" files present.

Code:
70      mkdir tmp
71      ll
72      cd tmp/
73      ll
74      for i in 1 2 3 ; do
        touch $i.file
        done
75      ll
76      ls | sort
77      ls | sort > mysort
78      vi mysort

# 7  
Old 01-28-2013
You could try this instead:
Code:
ls | sort -o mysort

BTW I am not sure about the cause of this behavior, I am looking into it, will get back to you when I have an answer.
This User Gave Thanks to Yoda For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
Login or Register to Ask a Question

Featured Tech Videos