10-04-2005
OK, problem solved.
It's not a bug, I just misunderstood the behaviour of the -c option of sort:
it does not just check that the file is sorted according to the field specified
by the -k option, it checks that the file is identical to what sort would produce
on the file when sorting it according to this field.
The behavior of sort when two lines have the same value for the specified
field is to compare the whole of these two lines to sort them with respect
to one another. Providing the --stable option causes it instead to leave
them in the order they were in in the original file.
Therefore running sort -c --stable correctly identifies that the file is sorted
according to the desired field in my case.
Here's a short example of this behaviour:
$ cat test_sort
bbb aaa 2
aaa bbb 2
aaa aaa 1
$ sort -k 3,3n -k 2,2 test_sort
aaa aaa 1
bbb aaa 2
aaa bbb 2
$ sort -k 3,3n -k 2,2 test_sort | sort -c -k 3,3n
sort: -:3: disorder: aaa bbb 2
$ sort -k 3,3n -k 2,2 test_sort | sort -c --stable -k 3,3n
This last check is successful.
Thanks for your help, it's the designing of this small example that helped me
understand what the problem was!
10 More Discussions You Might Find Interesting
1. Programming
I put this here because it is a 'behavior' type question..
I seem to remember doing ls .* and getting all the .-files, like
.profile
.login
etc.
But ls .* doesn't do that, it lsts the contents of every .*-type subdirectory.
Is it supposed to?
I should think that a -R should be given to... (10 Replies)
Discussion started by: AtleRamsli
10 Replies
2. Shell Programming and Scripting
the sed command:
sed 's/^*//' file
does not work on HP-UX :-( but it works fine on Linux,
content of file:
<tab><tab>hello
output should be:
hello
Any ideas??
Thank you
Andy (8 Replies)
Discussion started by: andy2000
8 Replies
3. Shell Programming and Scripting
Hello to all...this is my first post (so please go easy). :)
I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies
4. Shell Programming and Scripting
Echo is removing extra blank spaces. See the command.
export INSTALLDIR=”First Second /Two Space”
echo $INSTALLDIR
out put: First Second /Two Space
Here only on blnak space is present while with command
Echo “$INSTALLDIR”
Out put: ”First Second /Two Space”
It's correct output... (2 Replies)
Discussion started by: Saurabh78
2 Replies
5. Shell Programming and Scripting
Hi to all.
I'm trying to sort this with the Unix command sort.
user1:12345678:3.5:2.5:8:1:2:3
user2:12345679:4.5:3.5:8:1:3:2
user3:12345687:5.5:2.5:6:1:3:2
user4:12345670:5.5:2.5:5:3:2:1
user5:12345671:2.5:5.5:7:2:3:1
I need to get this:
user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies
6. UNIX for Advanced & Expert Users
Hello all -
I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies
7. AIX
Aix 6.1, working with a nim master and nim_altmaster
both LPARS have access to the same data LUN, /nimdisk
I do realize the risks of having 2 servers access the same LUN, however it serves the purpose of being able to restore mksysb's to/from our DR site if necessary, at least in theory ;)
... (3 Replies)
Discussion started by: mshilling
3 Replies
8. UNIX for Advanced & Expert Users
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
9. Shell Programming and Scripting
Input file:
100%ABC2 3.44E-12 USA
A2M%H02579 0E0 UK
100%ABC2 5.34E-8 UK
100%ABC2 3.25E-12 USA
A2M%H02579 5E-45 UK
Output file:
100%ABC2 3.44E-12 USA
100%ABC2 3.25E-12 USA
100%ABC2 5.34E-8 UK
A2M%H02579 0E0 UK
A2M%H02579 5E-45 UK
Code try:
sort -k1,1 -g -k2 -r input.txt... (2 Replies)
Discussion started by: perl_beginner
2 Replies
10. Shell Programming and Scripting
Hi Experts,
I have a filelist collected from another server , now want to sort the output using date/time stamp filed.
- Filed 6, 7,8 are showing the date/time/stamp.
Here is the input:
#----------------------------------------------------------------------
-rw------- 1 root ... (3 Replies)
Discussion started by: rveri
3 Replies
look(1) General Commands Manual look(1)
NAME
look - Finds lines in a sorted list
SYNOPSIS
look [-df] [-tcharacter] string [file]
The look command prints all lines in a sorted file that begin with string.
OPTIONS
Uses dictionary order; only letters, digits, tabs, and spaces are used in comparisons. Searches without regard to case; treats uppercase
and lowercase as equivalent. Ignores character and characters following it in the search string. If you specify look -tC ABCDE, the
string ABCDE would become (in effect) AB, with CDE being ignored. This option is primarily for shell scripts, in which more than one
string is being processed.
DESCRIPTION
If no file is specified, look searches in the system word list /usr/share/dict/words, with the options -df assumed by default.
The look command uses binary search.
The -d and -f options affect comparisons as in sort.
NOTES
In order to use the -f option, you must first sort file with the sort -f command; otherwise, look displays only lowercase items.
If you do not specify -f, but specify a file (such as /usr/share/dict/words) that has been sorted with sort -f, look may not produce any
output.
EXAMPLES
To search a sorted file called sortfile for all lines that begin with the string as, enter: look as sortfile To search the system word list
for all words beginning with smi, enter: look smi
This might result in: smile smirk smith smithereens Smithfield Smithson smithy smitten
FILES
System word list.
SEE ALSO
Commands: grep(1), sort(1), spell(1)
look(1)