Sorting a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Sorting a file
# 1  
Old 06-25-2007
Sorting a file

Hi All

I have a file and having 6 columns in that one . I need to sort the file based 2nd , 3rd and 1st column . Can anybody suggest me how to do this .I am new to UNIX.

Output file name : /data/Projects/Payable.txt

Record_Id | Ord_number | Line_No | External_Contact|
05Paybles |1111| 10 | NA
05Paybles |1000| 1 | NA
05Paybles |1111| 2 | NA
05Paybles |1000| 2 | NA




Thanks in advance

Hari
# 2  
Old 06-25-2007
See if this works for you:
Code:
sort -k2,2 -k3,3 -k1,1 -n -t'|' input_file

# 3  
Old 06-25-2007
Code:
sort -k 2,2n -k 3,3n -k 1,1n /data/Projects/Payable.txt

kamitsin
# 4  
Old 06-27-2007
Sorting File

Hi All
Thanks a lot for the reponses .

The Output file :

Record_Id | Ord_number | Line_No | External_Contact|
05Paybles |1111| 1 | NA
05Paybles |1111| 10 | NA
05Paybles |1111| 2 | NA
05Paybles |2222| 2 | NA
05Paybles |1111| 11 | NA
05Paybles |1111| 12 | NA
05Paybles |1111| 22 | NA
05Paybles |1111| 21 | NA
05Paybles |1111| 25 | NA
05Paybles |1111| 3 | NA
05Paybles |1111| 33 | NA



After sorting My output should be like this :

05Paybles |1111| 1 | NA
05Paybles |1111| 10 | NA
05Paybles |1111| 11 | NA
05Paybles |1111| 12 | NA

05Paybles |1111| 2 | NA
05Paybles |1111| 21 | NA
05Paybles |1111| 22 | NA

05Paybles |1111| 3 | NA
05Paybles |1111| 33 | NA

05Paybles |2222| 2 | NA


I have tried like this

sort -k2,2 -k 3.1,3.2 -k1,1 -n -t'|' /data/Projects/Payable.txt > /data/Projects/PayableI.txt`date "+%Y%m%d%H%M%S"`.txt

The output is not as expected.

Pls suggest me how to implement this logic.

Thanks in advance

hari
# 5  
Old 06-27-2007
Try, ( Sorting based on 2nd,3rd and first fields)
Code:
 sort -t'|' -k2n -k3n -k1d /tmp/file

Also Try ( To get the answer in the previous post)
Code:
sort -t'|' -k2n /tmp/file

Thanks
Nagarajan Ganesan
# 6  
Old 06-27-2007
Quote:
Originally Posted by mtechnocrat
Hi All
Thanks a lot for the reponses .

The Output file :

Record_Id | Ord_number | Line_No | External_Contact|
05Paybles |1111| 1 | NA
05Paybles |1111| 10 | NA
05Paybles |1111| 2 | NA
05Paybles |2222| 2 | NA
05Paybles |1111| 11 | NA
05Paybles |1111| 12 | NA
05Paybles |1111| 22 | NA
05Paybles |1111| 21 | NA
05Paybles |1111| 25 | NA
05Paybles |1111| 3 | NA
05Paybles |1111| 33 | NA



After sorting My output should be like this :

05Paybles |1111| 1 | NA
05Paybles |1111| 10 | NA
05Paybles |1111| 11 | NA
05Paybles |1111| 12 | NA

05Paybles |1111| 2 | NA
05Paybles |1111| 21 | NA
05Paybles |1111| 22 | NA

05Paybles |1111| 3 | NA
05Paybles |1111| 33 | NA

05Paybles |2222| 2 | NA


I have tried like this

sort -k2,2 -k 3.1,3.2 -k1,1 -n -t'|' /data/Projects/Payable.txt > /data/Projects/PayableI.txt`date "+%Y%m%d%H%M%S"`.txt

The output is not as expected.

Pls suggest me how to implement this logic.

Thanks in advance

hari
Code:
$ sort -k2,2 -k 3.1,3.2 -k1,1 -t'|'  file |
> awk -F"|" '
> NR == 1 { first_char=substr(int($3),1,1) }
> $3 !~ "^ *"first_char { first_char=substr(int($3),1,1); $0="\n"$0 }
> 1 '
05Paybles |1111| 1 | NA
05Paybles |1111| 10 | NA
05Paybles |1111| 11 | NA
05Paybles |1111| 12 | NA

05Paybles |1111| 2 | NA
05Paybles |1111| 21 | NA
05Paybles |1111| 22 | NA
05Paybles |1111| 25 | NA

05Paybles |1111| 3 | NA
05Paybles |1111| 33 | NA

05Paybles |2222| 2 | NA

# 7  
Old 06-27-2007
Iam tring to execute the below script but iam getting error

cd /data/Projects
sort -k2,2 -k 3.1,3.2 -k1,1 -t'|' Payable.txt |
awk -F"|" '
NR == 1 { first_char=substr(int($3),1,1) }
$3 !~ "^ *"first_char { first_char=substr(int($3),1,1); $0="\n"$0 }
1 '

Error
awk: syntax error near line 3
awk: bailing out near line3

Please help
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help in Sorting a file

Hi Unix Admins, I wanted to sort a file in a specific order, i.e the input file contains two fields and the first column is not unique and had to be sorted. example Input File ------- 2014-10-21:Rand1 2014-11-02:Rand2 2014-11-02:Rand3 2014-11-02:Rand4 2014-11-03:Rand5 2014-11-04:Rand6... (4 Replies)
Discussion started by: Naveenezone
4 Replies

2. Solaris

What about sorting a 5G file?

Hi Guys, My client (dear clients, I hate to love you) has the funky idea of sorting a 5G flat file. Certainly enough, this is taking forever and also fulls the / of our machine. Any idea of how we could proceed to make this a little bit more efficient? Maybe by forcing sort to "stay in... (7 Replies)
Discussion started by: plmachiavel
7 Replies

3. UNIX for Dummies Questions & Answers

Sorting data in file based on field in another file

Hi, I have two files, one of which I would like to sort based on the order of the data in the second. I would like to do this using a simple unix statement. My two files as follows: File 1: 12345 1 2 2 2 0 0 12349 0 0 2 2 1 2 12350 1 2 1 2 2 2 . . . File2: 12350... (3 Replies)
Discussion started by: kasan0
3 Replies

4. UNIX for Dummies Questions & Answers

sorting s file

how would i sort a file on the third column based on numerical value instead of the ASCII order? (1 Reply)
Discussion started by: trob
1 Replies

5. Shell Programming and Scripting

Finding & Moving Oldest File by Parsing/Sorting Date Info in File Names

I'm trying to write a script that will look in an /exports folder for the oldest export file and move it to a /staging folder. "Oldest" in this case is actually determined by date information embedded in the file names themselves. Also, the script should only move a file from /exports to... (6 Replies)
Discussion started by: nikosey
6 Replies

6. Shell Programming and Scripting

Sorting file

I have the file as follow: A: 60 B: 80 C: 40 D: 11 E: 100 I want to sort the file and get the output to file as follow: E: 100 B: 80 A: 60 C: 40 D: 11 Could any one help me please? (1 Reply)
Discussion started by: moutaz1983
1 Replies

7. Shell Programming and Scripting

file sorting

i have a data in afile like this ************************************** sree sree@yahoo.com 98662323432 ************************************* phani phani@yahoo.com 98662323344 ************************************* i want to sort the file with respect to name. how can i do this. thank... (5 Replies)
Discussion started by: phani_sree
5 Replies

8. Programming

regarding file sorting

i ahve a file like: ************************************* sree 122132 12321 *********************************** phani 21321 3213214 ****************************** dddsds 213213123 23213213 ******************************* i want to sort the file with respect to name how we can do this... (1 Reply)
Discussion started by: phani_sree
1 Replies

9. Shell Programming and Scripting

sorting file

hi everyone, i have a document where i have email addresess and names, i need to check if the email addresses are uniq, if they repeat erase one of them, how can i do that? document sample: aD00763357@cucei.udg.mx,ABRAHAM ANTONIO SEVERIANO a199721111@cucei.udg.mx,ABRAHAM GONZALEZ... (4 Replies)
Discussion started by: sx3v1l_1n51de
4 Replies

10. Shell Programming and Scripting

Help sorting file.

Hi, I have this file (filex) 07-11-2003 10:11:12!cccc!ddd!eeeeeeee 07-11-2003 09:11:11!dddd!kkkkk!xxxxxx 09-12-2003 14:18:43!aaaa!bbbbb!cccc where I need to sort it by date+time in this order: 09-12-2003 14:18:43!aaaa!bbbbb!cccc 07-11-2003 10:11:12!cccc!ddd!eeeeeeee 07-11-2003... (3 Replies)
Discussion started by: gio123bg
3 Replies
Login or Register to Ask a Question