Sponsored Content
Top Forums Shell Programming and Scripting Help with sort only column 2 data separately Post 302966923 by Don Cragun on Thursday 18th of February 2016 04:05:20 AM
Old 02-18-2016
If you really want to keep column 1 as it is and sort the 2nd and 3rd columns by increasing numeric value of the 2nd column (instead of sorting column 2 values with column 1 values, you could try:
Code:
#!/bin/ksh
tmpfn=${0##*/}.$$

trap 'rm -rf "$tmpfn"' EXIT

awk -v tmpfn="$tmpfn" '
BEGIN {	OFS = "\t"
	cmd = "sort -k1n > " tmpfn
}
{	f1[++lc] = $1
	print $2, $3 | cmd
}
END {	close(cmd)
	for(i = 1; i <= lc; i++) {
		getline < tmpfn
		print f1[i], $1, $2
	}
	close(tmpfn)
}' Input_File

which, with your sample input (without the .... lines) produces the output:
Code:
Contig_1_294435nt	39664	39742
Contig_1_294435nt	39666	39743
Contig_1_294435nt	41610	41684
Contig_1_294435nt	41617	41684
Contig_2_242278nt	75910	76271
Contig_2_242278nt	76036	76316
Contig_2_242278nt	76036	76316
Contig_3_206988nt	100775	100835
Contig_3_206988nt	100775	100835
Contig_3_206988nt	156143	157111
Contig_3_206988nt	156147	157111
Contig_3_206988nt	178412	178537
Contig_3_206988nt	178729	178896
Contig_3_206988nt	179269	179510
Contig_3_206988nt	179269	179517
Contig_3_206988nt	179269	180441
Contig_3_206988nt	180033	180441
Contig_3_206988nt	180043	180441
Contig_3_206988nt	242231	242751
Contig_3_206988nt	242390	242782
Contig_3_206988nt	242390	242782
Contig_3_206988nt	291578	291668

Of course, a lot of error checking should be added in the END clause, but this seems to work as a proof of concept.

As always, if you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk or nawk.

This was written and tested using a 1993+ version of the Korn shell, but will work with any POSIX-conforming shell.

Last edited by Don Cragun; 02-18-2016 at 05:06 AM.. Reason: Remove the debugging sleep.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Question about sort specific column and print other column at the same time !

Hi, This is my input file: ali 5 usa abc abu 4 uk bca alan 6 brazil bac pinky 10 utah sdc My desired output: pinky 10 utah sdc alan 6 brazil bac ali 5 usa abc abu 4 uk bca Based on the column two, I want to do the descending order and print out other related column at the... (3 Replies)
Discussion started by: patrick87
3 Replies

2. Shell Programming and Scripting

Extract data based on match against one column data from a long list data

My input file: data_5 Ali 422 2.00E-45 102/253 140/253 24 data_3 Abu 202 60.00E-45 12/23 140/23 28 data_1 Ahmad 256 7.00E-45 120/235 140/235 22 data_4 Aman 365 8.00E-45 15/65 140/65 20 data_10 Jones 869 9.00E-45 65/253 140/253 18... (12 Replies)
Discussion started by: patrick87
12 Replies

3. Shell Programming and Scripting

Sort a the file & refine data column & row format

cat file1.txt field1 "user1": field2:"data-cde" field3:"data-pqr" field4:"data-mno" field1 "user1": field2:"data-dcb" field3:"data-mxz" field4:"data-zul" field1 "user2": field2:"data-cqz" field3:"data-xoq" field4:"data-pos" Now i need to have the date like below. i have just... (7 Replies)
Discussion started by: ckaramsetty
7 Replies

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

5. Shell Programming and Scripting

Sort data As per first Column

hI I have file A NSU30504 5 6 G 6 NSU3050B T 7 9 J NSU30506 T I 8 9 NSU3050C H J K L Output: NSU3050B T 7 9 J NSU3050C H J K L NSU30504 5 6 G 6 NSU30506 T I 8 9Video tutorial on how to use code tags in The UNIX and Linux Forums. (13 Replies)
Discussion started by: pareshkp
13 Replies

6. Shell Programming and Scripting

Advanced: Sort, count data in column, append file name

Hi. I am not sure the title gives an optimal description of what I want to do. Also, I tried to post this in the "UNIX for Dummies Questions & Answers", but it seems no-one was able to help out. I have several text files that contain data in many columns. All the files are organized the same... (14 Replies)
Discussion started by: JamesT
14 Replies

7. Shell Programming and Scripting

Compare 2 files and match column data and align data from 3 column

Hello experts, Please help me in achieving this in an easier way possible. I have 2 csv files with following data: File1 08/23/2012 12:35:47,JOB_5330 08/23/2012 12:35:47,JOB_5330 08/23/2012 12:36:09,JOB_5340 08/23/2012 12:36:14,JOB_5340 08/23/2012 12:36:22,JOB_5350 08/23/2012... (5 Replies)
Discussion started by: asnandhakumar
5 Replies

8. Shell Programming and Scripting

Sort data by date and then search by column

Hi, I have a file where data is pipe separated.First i want to sort the file content by date . Then i want to pick up the records based on the first column which should be unique and not have duplicates. NYSE|yyyrrrddd|toronto|isin|ticker|2013-05-15... (2 Replies)
Discussion started by: samrat dutta
2 Replies

9. UNIX for Beginners Questions & Answers

How do I sort data in column properly?

Can i use 'column' command to get the required 3rd column output? Input example: 1 2 345678 90 2 2 356 42 3 3 8265 55 Output required: 1 2 345678 90 2 2 356 42 3 3 8265 55 Basically i want the 3rd column to be justified to the right, instead of left.... (3 Replies)
Discussion started by: nurul_nadzirah
3 Replies

10. Shell Programming and Scripting

Use sort to sort numerical column

How to sort the following output based on lowest to highest BE? The following sort does not work. $ sort -t. -k1,1n -k2,2n bfd.txt BE31.116 0s 0s DOWN DAMP BE31.116 0s 0s DOWN DAMP BE31.117 0s 0s ... (7 Replies)
Discussion started by: sand1234
7 Replies
TRACE-CMD-OPTIONS(1)													      TRACE-CMD-OPTIONS(1)

NAME
trace-cmd-options - list available options from trace-cmd plugins SYNOPSIS
trace-cmd options DESCRIPTION
The trace-cmd(1) options command will examine all the trace-cmd plugins that are used by trace-cmd report(1) and list them. SEE ALSO
trace-cmd(1), trace-cmd-record(1), trace-cmd-start(1), trace-cmd-stop(1), trace-cmd-extract(1), trace-cmd-reset(1), trace-cmd-split(1), trace-cmd-list(1), trace-cmd-listen(1) AUTHOR
Written by Steven Rostedt, <rostedt@goodmis.org[1]> RESOURCES
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git COPYING
Copyright (C) 2011 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL). NOTES
1. rostedt@goodmis.org mailto:rostedt@goodmis.org 06/11/2014 TRACE-CMD-OPTIONS(1)
All times are GMT -4. The time now is 10:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy