Sort each row (horizontally) in AWK or any


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort each row (horizontally) in AWK or any
# 8  
Old 03-31-2012
@joseamck
just run the script sort.sh with your file, such as:
Code:
bash sort.sh your_file

This User Gave Thanks to complex.invoke For This Post:
# 9  
Old 03-31-2012
Or just blow your own bubbles... Smilie
Code:
awk '{c=1;while(c!=""){c=""; for(i=1;i<NF;i++){n=i+1; if($i>$n){c=$i;$i=$n;$n=c}}}}1' infile

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 10  
Old 03-31-2012
Hi.

See https://www.unix.com/shell-programmin...ords-line.html for a number of techniques (some similar those posted here). In the cases that use the command sort, you will need to specify a numeric sort instead of the default character sort.

Best wishes ... cheers, drl
# 11  
Old 03-31-2012
Code:
perl -lane '$,=" "; print sort { $a <=> $b } @F' infile

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 12  
Old 03-31-2012
Hi.

A slightly different solution in perl:
Code:
#!/usr/bin/env bash

# @(#) s1	Demonstrate sort numeric items on a line, perl.

pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C perl

pl " Input data file data1:"
cat data1

pl " Results of single line (cryptic) perl:"
perl -wn -e 'print join(" ",sort({$a<=>$b} split())),"\n";' data1

exit 0

producing:
Code:
% ./s1

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian GNU/Linux 5.0.8 (lenny) 
bash GNU bash 3.2.39
perl 5.10.0

-----
 Input data file data1:
4 6 8 1 7
2 12 9 6 10
6 1 14 5 7

-----
 Results of single line (cryptic) perl:
1 4 6 7 8
2 6 9 10 12
1 5 6 7 14

I like Scutinizer's solution. It illustrates useful features of perl that are similar to awk features. One does not see them often.
Best wishes ... cheers, drl

( Edit 1: simultaneous post with Scrutinizer )

Last edited by drl; 03-31-2012 at 08:27 AM..
This User Gave Thanks to drl For This Post:
# 13  
Old 03-31-2012
Thank you,

I learned something today, thank you all. It works.

Last edited by joseamck; 03-31-2012 at 04:36 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sort by values in the 1st row, leaving first four coulumns untouched

Dear all, will be thankful if you can help on sort command. My data looks like (tab separated; number of columns 2317; N of rows ~200000): a b c d V10 V2 V8 V4 V7 xx z y 1000 1 2 0 2 0 tr v m 1001 0 0 1 2 2 rg s ... (7 Replies)
Discussion started by: kush
7 Replies

2. Shell Programming and Scripting

Sort two columns with alphanumeric values horizontally

Hi, I have a file like aa bb dmns|860 dmns|756 ee ff aa bb dmns|310 dmns|260 ee ff aa bb dmns|110 dmns|77 ee ff aa bb dmns|756 dmns|860 ee ff aa bb dmns|110 dmns|77 ee ff aa bb dmns|233 dmns|79 ee ff aa bb dmns|79 dmns|233 ee ff I want to sort the values in column3 and column4... (2 Replies)
Discussion started by: sammy777888
2 Replies

3. Shell Programming and Scripting

Sort by first row - awk

how can i sort the table based on first row? thanks in advance input name d b c a l l1 l2 l3 l4 l1 1 2 3 4 l2 2 2 2 1 l3 1 1 2 2ouput name a b c d l1 l4 ... (4 Replies)
Discussion started by: quincyjones
4 Replies

4. Shell Programming and Scripting

awk transpose column to row and sort

I am trying to awk the output from below output for each port: i need separate line with comma source file Output required (3 Replies)
Discussion started by: ranjancom2000
3 Replies

5. UNIX for Dummies Questions & Answers

Sorting arrays horizontally without END section, awk

input: ref001, Europe, Belgium, 1001 ref001, Europe, Spain, 203 ref001, Europe, Germany, 457 ref002, America, Canada, 234 ref002, America, US, 87 ref002, America, Alaska, 652 Without using an END section, I need to write all the info related to the same ref number ($1)and continent ($2) on... (9 Replies)
Discussion started by: lucasvs
9 Replies

6. Shell Programming and Scripting

Subtracting each row from the first row in a single column file using awk

Hi Friends, I have a single column data like below. 1 2 3 4 5 I need the output like below. 0 1 2 3 4 where each row (including first row) subtracting from first row and the result should print below like the way shown in output file. Thanks Sid (11 Replies)
Discussion started by: ks_reddy
11 Replies

7. Shell Programming and Scripting

Sort data from column to row

Hi, I need somebody's help with sorting data with awk. I've got a file: 10 aaa 4584 12 bbb 6138 20 ccc 4417 21 ddd 7796 10 eee 7484 12 fff ... (5 Replies)
Discussion started by: killerbee
5 Replies

8. Shell Programming and Scripting

Sort a file from specific row onwards

Hello All: I've file in below format. File name is "FIRSTN.TBL": AAAAAA N BBBBBBBBBBBBBBBBBBBBBBB N . . . . ZZZZZZZZZZZZZZZZZZZZZZZZZZ N My file row length is 40 characters and my second column will start from 25th column and it is only... (3 Replies)
Discussion started by: nvkuriseti
3 Replies

9. Shell Programming and Scripting

awk command : row by row merging of two files

I want to write a scrpit to merge files row wise (actually concatinating) main.txt X Y Z file 1 A B C file 2 1 2 3 now i want the script to check if the file1 is empty or not, if empty then make it like A B C 1 2 3 again to check if second file is empty if not do as done... (0 Replies)
Discussion started by: shashi792
0 Replies

10. Shell Programming and Scripting

sort and semi-duplicate row - keep latest only

I have a pipe delimited file. Key is field 2, date is field 5 (as example, my real file is more complicated of course, but the KEY and DATE are accurate) There can be duplicate rows for a key with different dates. I need to keep only rows with latest date in this case. Example data: ... (4 Replies)
Discussion started by: LisaS
4 Replies
Login or Register to Ask a Question