Awk: convert rows to columns every n lines


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Awk: convert rows to columns every n lines
# 1  
Old 05-09-2013
Awk: convert rows to columns every n lines

Hi guys!

I use AWK commands under GAMS to predispose the data files to be read by GAMS.
I have a file which contains groups of data I need. Unfortunately I have the data spread in 3 rows for each subject.

Here's an example (the file is really long)

Code:
1 0 2.0956 100.00 250.00 100.00 2.0956 0.10000 R 0.00 20 1.00000
86222 2 16.50 13.50 0.2156 7.1880 275.0 0.36945 1.01250 1.10000 0.90000 0.01250 0 0 0 1 0.0000
86221 2 25.00 15.00 0.2156 7.1880 275.0 0.36945 1.07500 1.10000 0.90000 0.01250 0 0 0 1 0.0000
2 0 2.0956 100.00 250.00 100.00 2.0956 0.10000 R 0.00 20 1.00000
86222 2 16.50 13.50 0.2156 7.1880 275.0 0.36945 1.01250 1.10000 0.90000 0.01250 0 0 0 1 0.0000
86221 2 25.00 15.00 0.2156 7.1880 275.0 0.36945 1.07500 1.10000 0.90000 0.01250 0 0 0 1 0.0000

Is it possible to convert the rows to columns every 3 lines so that I have only one row per subject and I can easily read each field using awk?


I tried to do the conversion with this code

Code:
awk -f '{printf("%s%s",$0,NR%3?" ":"\n")}'

However the output I get is this:

Code:
1 0 2.0956 100.00 250.00 100.00 2.0956 0.10000 R 0.00 20 1.00000 86222 2 16.50 13.50 0.2156 7.1880 275.0 0.36945 1.01250 1.10000 0.90000 0.01250 0 0 0 1 0.0000 86221 2 25.00 15.00 0.2156 7.1880 275.0 0.36945 1.07500 1.10000 0.90000 0.01250 0 0 0 1 0.0000 2 0 2.0956 100.00 250.00 100.00 2.0956 0.10000 R 0.00 20 1.00000 86222 2 16.50 13.50 0.2156 7.1880 275.0 0.36945 1.01250 1.10000 0.90000 0.01250 0 0 0 1 0.0000 86221 2 25.00 15.00 0.2156 7.1880 275.0 0.36945 1.07500 1.10000 0.90000 0.01250 0 0 0 1 0.0000

Could you please help me?
Thank you!
# 2  
Old 05-09-2013
I think it will work.. why you need -f in awk?
# 3  
Old 05-09-2013
I don't know exactly why, but if I delete the -f I get an error from GAMS compiler..


Here my problem is that it seems that GAMS doesn t recognize the (NR%3) statement. I do not see any error in my code, but still it converts all rows to columns, without actualli checking that if(NR%==0) it should add a \n
# 4  
Old 05-09-2013
Unfortunately I am not familiar with GAMS Smilie
# 5  
Old 05-09-2013
Smilie thank anyways. At least now I know that that code is correct, so there should be something strange with GAMS I do not know..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert rows into columns and create table with awk

Hello I've four fields . They are First Name, Last Name, Age, Country. So when I run a Unix command, I get below output with these fields comes every time in different order as you can see. Some times first name is the first row and other time last name is first row in the output and etc etc..... (9 Replies)
Discussion started by: rprpr
9 Replies

2. Shell Programming and Scripting

Convert rows to columns

hi folks, I have a sample data like what is shown below: 1,ID=1000 1,Org=CedarparkHospital 1,cn=john 1,sn=doe 1,uid=User001 2,uid=User002 2,ID=2000 2,cn=steve 2,sn=jobs 2,Org=Providence I would like to convert it into the below format: 1,1000,CedarparkHospital,john,doe,User001... (11 Replies)
Discussion started by: vskr72
11 Replies

3. Shell Programming and Scripting

Convert rows to columns

I am looking to print the data in columns and after every 3 words it should be a new row. cat example.out | awk 'END { for (i = 0; ++i < m;) print _;print _ }{ _ = _ x ? _ OFS $1 : $1}' m=1| grep -i INNER I am looking to print in a new line after every 3 words. ... (2 Replies)
Discussion started by: lazydev
2 Replies

4. Shell Programming and Scripting

Convert Rows to Columns

Hi Everyone, Could someone shed some lights on how to convert the records in rows form into column basis. 172.29.59.12 IBM,8255-E8B 102691P 8 65536 MB 6100-04-11-1140 172.29.59.15 IBM,8255-E8B 102698P 4 45056 MB 6100-04-11-1140 IP SYS MODEL ... (6 Replies)
Discussion started by: ckwan
6 Replies

5. Shell Programming and Scripting

How to Convert rows in to columns?

Hi Gurus, How to convert rows in to columns using linux shell scripting Input is like (sample.txt) ABC DEF GHI JKL MNO PQR STU VWX YZA BCD output should be (sampleoutput.csv) ABC,DEF,GHI,JKL,MNO PQR,STU,VWX,YZA,BCD (2 Replies)
Discussion started by: infasriniit
2 Replies

6. Shell Programming and Scripting

Convert rows into columns using awk or perl

hi friends, i am able to parse cvs diff file using bit of cut and grep commands to produce following output in text file '''cvs-diff.txt''' Package-Name = dev-freetype. Old-Version = 2.4.8 New-Version = 2.4.10 Patches-removed = freetype-2.4.8-cross-compile.patch... (2 Replies)
Discussion started by: alexzander18
2 Replies

7. Shell Programming and Scripting

convert rows to columns

hi, i have the file as below: abc def ghi jkl i want the output as abc,def,ghi,jki please reply, Thanks (4 Replies)
Discussion started by: namitai
4 Replies

8. UNIX for Dummies Questions & Answers

Convert rows to columns using AWK

Hi , I am struck while coding AWK script. Need your help to convert rows into columns. I should copy only those rows which are marked to Y in a file and ignore N rows. Please help me find a solution. input file 1|abc|Y 2|cdf|Y 3|efg|N 4|xyz|Y my output should be something like this... (2 Replies)
Discussion started by: rashmisb
2 Replies

9. Shell Programming and Scripting

convert rows into columns

Hi guys Could anyone advise me how to convert my rows into columns from a file My file would be similar to this: A11 A12 A13 A14 A15 ... A1n A21 A22 A23 A31 A41 A51 ... Am1 Am2 Am3 Am4 Am5 ... Amn The number of rows is not the same to the number of columns Thanks in advance (2 Replies)
Discussion started by: loperam
2 Replies

10. Shell Programming and Scripting

how to convert columns to rows

Hi, I need a shell script for below requirement Input file P1 - 173310 P2 - 173476 P3 - 173230 P4 - 172737 P1 - 173546 P2 - 173765 P3 - 173876 P4 - 172989 Out put file P1 173310 173546 P2 173476 173765 P3 173230 173876 P4 172737 172989 Suresh (6 Replies)
Discussion started by: suresh3566
6 Replies
Login or Register to Ask a Question