Is there any better way for sorting in bash/awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Is there any better way for sorting in bash/awk
# 1  
Old 10-30-2008
Is there any better way for sorting in bash/awk

Hi,

I have a file which is:-

1 6 4 8 2 3
2 1 9 3 2 1
3 3 5 6 3 1
4 9 7 8 2 3

I would like to sort from field $2 to field $6 for each of the line to:-

1 2 3 4 6 8
2 1 1 2 3 9
3 1 3 3 5 6
4 2 3 7 8 9


I came across this Arrays on example 26-6. But it is much complicated. I am looking any better way to perform the above. For your information the information which I printed out at the first stage (before sort) is using bash.


Appreciate your help. Thanks.
# 2  
Old 10-30-2008
Hammer & Screwdriver Is this what you mean?

Code:
> cat file22
1 6 4 8 2 3
2 1 9 3 2 1
3 3 5 6 3 1
4 9 7 8 2 3
> sort -t" " -k2 file22
2 1 9 3 2 1
3 3 5 6 3 1
1 6 4 8 2 3
4 9 7 8 2 3

Above was sorted, with delimiter of space between fields, beginning at the 2nd field.
# 3  
Old 10-30-2008
Hi Joey,

I meant sorting the field 2,field 3 ,field4 and field 5 for each line.

My example of input:-

1 6 4 8 2 3
2 1 9 3 2 1
3 3 5 6 3 1
4 9 7 8 2 3

Output:-
1 2 3 4 6 8
2 1 1 2 3 9
3 1 3 3 5 6
4 2 3 7 8 9

Observe the numbers in field 2 to field 5 are sorted from ascending.
# 4  
Old 10-30-2008
Question

The first position is the row number.
You are then sorting all the members on each row?
That would be positions 2 thru 6?
# 5  
Old 10-30-2008
Hi

The first field is some other numbers and the example happen to be somehow row number.

You are right..it is from field 2 to field 6.
# 6  
Old 10-30-2008
perl:

Code:
open FH,"<file";
while(<FH>){
	$_=~tr/\n//d;
	my($fir,@arr)=split;
	print $fir," ",join(" ",sort {$a<=>$b} @arr),"\n";	
}
close FH;

# 7  
Old 10-30-2008
Hi,

Thanks for the suggestion. But I am looking at solution for bash so I could pass the sorted array directly. I need to do some extra computation on the sorted array before printed out to a new file.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with awk sorting with different values

Hello, I have a file as follows: BTA Pos KLD 4 79.7011 5.7711028907 4 79.6231 5.7083918219 5 20.9112 4.5559494707 5 58.0002 3.4423546273 6 38.2569 4.7108176788 6 18.3889 7.3631759258 (1 Reply)
Discussion started by: Homa
1 Replies

2. Shell Programming and Scripting

Recursive File Renaming & Natural Sorting (Bash)

NB! I have already started a thread on this subject on ComputerHope (with the thread title "Recursive File Renaming & Logical Sorting"). However, on ComputerHope they are perhaps more specialized in Windows Command Prompt, and not that much in shell scripts for Bash (I guess). I have a bulk... (1 Reply)
Discussion started by: JewzeyfGhewbelz
1 Replies

3. Shell Programming and Scripting

Sorting within a record using AWK

Hello, I have a file which has the following format: I have to do is sort individual records in the file based on the 4th field. Each record starts with "Module". Is there an easy way to do this using awk. I have tried piping output from awk to sort and also using "sort" inside awk but... (8 Replies)
Discussion started by: fifteate
8 Replies

4. Shell Programming and Scripting

Sorting a .csv using awk or other

Hello all, I am new here and *relatively* new to Unix. I have a bit of an emergency. I have a three column file that I need to sort: sample name, miRNA, reads per million (RPM) There are multiple samples, and for each sample name there are multiple miRNAs and associated RPMs. Some of these... (6 Replies)
Discussion started by: dunnybocter
6 Replies

5. Shell Programming and Scripting

AWK/GREP sorting help

hi everyone, I am kind of new to this forum. I need help in sorting this data out accordingly, I am actually doing a traceroute application and wants my AS path displayed in front of my address like this; 192.168.1.1 AS28513 AS65534 AS5089 AS5089 .... till the last AS number and if possible sort... (8 Replies)
Discussion started by: sam127
8 Replies

6. Shell Programming and Scripting

Sorting inside awk

I have an array with five columns and i want to write it to a file. Before writing it i must sort it using the field in the fifth column. _________________________________________ |field 1|field 2|field 3|field 4|field 5| | | | | | | | | | |... (6 Replies)
Discussion started by: beatblaster666
6 Replies

7. Shell Programming and Scripting

Sorting with sed,awk ...

I need to sort this input using sed, awk or any other tool to give below output Input: RXOCF-8 CLASS 2A 57 RU 40 RXORX-8-0 CLASS 1B 23 45 16 RXORX-8-1 EXTERNAL CLASS 2A (12 Replies)
Discussion started by: aydj
12 Replies

8. Shell Programming and Scripting

AWK, sorting-if and print help.

Little-bit of awk experience, need some of the expert help on here. Browsed around here, got a little further, but I am still missing some pieces. Can you help me fill-in my missing awk cells? Sample data file (leaving out ","'s): Column 1 Column 2 Column 3 Column 4 ... (10 Replies)
Discussion started by: boolean2222
10 Replies

9. Shell Programming and Scripting

sorting in awk

i have following file have following type of data 1~%%~fcashfafh~%%~9797 can i sort(numeric) the file on first field and then on last feild using awk (3 Replies)
Discussion started by: mahabunta
3 Replies

10. Shell Programming and Scripting

awk sorting

Hi, I have used the following code to sort two sets of data: awk '{printf "%10s %s\n",$1,$2}' The first column is text and the second involves numbers. I was just wondering how i would go about sorting the second number so that they ascend from the top? Thanks for any help (4 Replies)
Discussion started by: Jaken
4 Replies
Login or Register to Ask a Question