Visit Our UNIX and Linux User Community


Re ordering lines - Awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Re ordering lines - Awk
# 1  
Old 08-02-2011
Re ordering lines - Awk

Is it possible to re-order certain rows as columns (of large files).
Few lines from the file for reference.

input
Code:
Splicing Factor: Tra2beta, Motif: aaguguu, Cutoff: 0.5000
Sequence Position	Genomic Coordinate	K-mer     	Score   
97               	chr1:67052604     	uacuguu   	0.571   
147              	chr1:67052554     	augugua   	0.536   
166              	chr1:67052535     	aaauuuu   	0.500   
226              	chr1:67052475     	aauugug   	0.612   
Splicing Factor: SRp20, Motif: wcwwc, Cutoff: 0.7200
Sequence Position	Genomic Coordinate	K-mer     	Score   
302              	chr1:67052399     	ucauc     	0.875   
349              	chr1:67052352     	acauc     	0.740



output
Code:
Splicing_Factor	Motif	Cutoff	Sequence_Position	Genomic_Coordinate	K-mer	Score   
Tra2beta	aaguguu	0.5000	97	chr1:67052604     	uacuguu   	0.571
Tra2beta	aaguguu	0.5000	147	chr1:67052554     	augugua   	0.536
Tra2beta	aaguguu	0.5000	166	chr1:67052535     	aaauuuu   	0.500 
Tra2beta	aaguguu	0.5000	226	chr1:67052475     	aauugug   	0.612
SRp20	wcwwc	0.7200	302	chr1:67052399	ucauc	0.875   
SRp20	wcwwc	0.7200	349	chr1:67052352	acauc	0.740


Last edited by quincyjones; 08-02-2011 at 02:52 AM..
# 2  
Old 08-02-2011
If the blocks to be transposed fit into memory, you can read the data into a 2-dimensional array and then print them in the desired layout.
Have a look at https://www.unix.com/shell-programmin...transpose.html to get an idea how this works.
# 3  
Old 08-02-2011
Quote:
Is it possible to re-order certain rows as columns (of large files).
Yes:
Code:
% perl -0777 -lne '                                                            
# print header
for ( /^Splicing Factor.*?(?=Splicing Factor|\z)/msg ) {
  @data = split /\n/;                               
  # parse $data[0] and remember values
  # loop  @data[2..$#data] and print out all values
}          
' INPUTFILE

But I'm too lazy to write the real code instead of comments.
# 4  
Old 08-02-2011
Try if the below one works..
Code:
awk 'BEGIN{FS="[, ]";print "Splicing_Facto Motif Cutoff Sequence_Score"}/Splicing/{v=$3;s=$6;c=$9};$0 !~ /Seq|Spli/{print v,s,c,$0}' inputfile


Previous Thread | Next Thread
Test Your Knowledge in Computers #887
Difficulty: Easy
sed (stream editor) is a Unix utility that parses and transforms text, using a simple, compact programming language.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to print missing and keep sequential ordering if not found

The below awk in bold will look for the ids in file1 in $2 of file2 and if they match print the line in file2. If an id is missing or not found in file2 (like BMPR2 in line4 of file1) I can not figure out how to add it to them to the lines in the output as missing in $3 following the same format.... (4 Replies)
Discussion started by: cmccabe
4 Replies

2. Shell Programming and Scripting

Ordering batch number

Hi, Could some one please help to order the batch number in sequence. I will be getting bunch of files with batch number in folder1 which are not in sequence. I need to move all files from folder1 to folder2 with batch number in sequence. Header record looks like PROCESS1... (8 Replies)
Discussion started by: zooby
8 Replies

3. Shell Programming and Scripting

Random ordering

1 2 4 5 3 I would like to use a script so that i can randomly rearrange these numbers such as 3 5 2 4 1 Thanks! (3 Replies)
Discussion started by: johnkim0806
3 Replies

4. Shell Programming and Scripting

ordering

file1 1 SNP2 3 1 SNP3 3 1 SNP5 4 2 SNP1 4 2 SNP4 4 file2 SNP1 1 1 1 SNP5 5 5 5 SNP4 4 4 4 SNP2 2 2 2 SNP3 1 1 1 desired output (1 Reply)
Discussion started by: johnkim0806
1 Replies

5. Shell Programming and Scripting

Re-ordering data

input Predictions for job: 1299399580 ********************************************** gg18_qqq10_100017878_100017978_- ============================================================================== zzz Factor: XXX, ttt: crsmsgw, Cutoff: 0.6429 seqe Position fff Coordinate K-mer Score ... (3 Replies)
Discussion started by: quincyjones
3 Replies

6. Shell Programming and Scripting

Appending lines with word frequencies, ordering and indexing a column

Dear All, I have the following input data: w1 20 g1 w1 10 g1 w2 12 g1 w2 23 g1 w3 10 g1 w3 17 g1 w3 12.5 g1 w3 21 g1 w4 11 g1 w4 13.2 g1 w4 23 g1 w4 18 g1 First I seek to find the word frequencies in col1 and sort col2 in ascending order for each change in a col1 word. Second,... (5 Replies)
Discussion started by: Ghetz
5 Replies

7. Shell Programming and Scripting

ordering a data file

With an input file like this: How can I get an output like this? (In the quoted examples, the "_" sign represents an empty space) Note that there are some minus signs and no spaces, in the example above the first character of the first line is an empty space, so each number spans 10... (16 Replies)
Discussion started by: lego
16 Replies

8. Homework & Coursework Questions

word ordering problem HELP please (linux)

Hi guys I need you ,please help me i have to do this for tomorow and i don't understand how to do Q1 : Order the words of RADIO.txt by frequency Q2 : Order the words of RADIO.txt in alphabétique order Q3 : Order the words of RADIO.txt par ordre "rhymique" (exemple, put togeder words which are... (1 Reply)
Discussion started by: Lili
1 Replies

9. Shell Programming and Scripting

trying to make an AWK code for ordering numbers in a column from least to highest

Hi all, I have a large column of numbers like 5.6789 2.4578 9.4678 13.5673 1.6589 ..... I am trying to make an awk code so that awk can easily go through the column and arrange the numbers from least to highest like 1.6589 2.4578 5.6789 ....... can anybody suggest, how can I do... (5 Replies)
Discussion started by: ananyob
5 Replies

10. Shell Programming and Scripting

proper ordering of o/p values

Hi, Below is my script which creates a file: #!/bin/sh if then echo "Enter bill period " echo "Syntax: sh cpd.sh G08" exit fi sqlplus uname/pwd@dbname <<EOF set WRAP off set FEEDBACK off set PAGESIZE 0 set VERIFY off (14 Replies)
Discussion started by: ss_ss
14 Replies

Featured Tech Videos