File wtih Varying colmns - Convert to Rows


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File wtih Varying colmns - Convert to Rows
# 1  
Old 01-06-2011
File wtih Varying colmns - Convert to Rows

Hi All,

I am working with a delimited file generated by a system. It contains customer response to some questions. Source system can add/remove questions, which will result into addition/removal of columns in the file.

Below is sample data with three questions (q1,q2,q3)
Code:
sid,rid,q1,q2,q3
1,1,a,b,c
1,2,x,y,z

I want to have data as below. Basically converting columns to rows and have only question, answer in the columns. This way i can create rows even if some question gets added/removed to the file.

Code:
sid,rid,question,answer
1,1,q1,a
1,1,q2,b
1,1,q3,c
1,2,q1,x
1,2,q2,y
1,2,q3,z

I looked at this site but could not find a solution. Thanks in advance for helping me.
# 2  
Old 01-06-2011
Code:
awk '
BEGIN{FS=OFS=",";print "sid,rid,question,answer"}
NR==1{split($0,a,",");next}
{for (i=3;i<=NF;i++) print $1,$2,a[i],$i}' infile

# 3  
Old 01-06-2011
Awesome!! This works well.
Appreciate if you can explain a little about the code and how it is working.
I could understand first line, Could not follow from $0,a, in 2nd line.
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 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

2. Shell Programming and Scripting

Convert header rows into

I want to put the 3 first lines into a single line separated by ; I've tried to use Sed and Awk but without success. I'm new to Shell scripting. Thanks in advance! Input 112 DESAC_201309_OR_DJ10 DJ10 1234567890123;8 1234567890124;20 1234567890125;3 expected Output... (8 Replies)
Discussion started by: MoroccanRoll
8 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. UNIX for Dummies Questions & Answers

Use sed on column (csv) file if data in colmns is greater > than?

I have a data file that has 14 columns. I cannot use awk or perl but sed is installed on my host. I would like to delete a line if fields 10, 11 or twelve is greater than 999.99. How is this done using sed? :wall: sed '/^*,*,*,*,*,*,*,*,*,*,*,*,*,*,/d' infile 1 2 3 4 ... (2 Replies)
Discussion started by: Chris Eagleson
2 Replies

6. Shell Programming and Scripting

Help on convert rows to colums

Need help to convert the following data Account name: admin Role: admin Description: Administrator Enabled: Yes to Account Name Role Description Enabled admin admin Administrator Yes Perl or AWK? Thanks San (9 Replies)
Discussion started by: sanguy
9 Replies

7. Shell Programming and Scripting

Convert columns to rows in a file

Hello, I have a huge tab delimited file with around 40,000 columns and 900 rows I want to convert columns to a row. INPUT file look like this. the first line is a headed of a file. ID marker1 marker2 marker3 marker4 b1 A G A C ... (5 Replies)
Discussion started by: ryan9011
5 Replies

8. Shell Programming and Scripting

How to check the varying file size

How to know a file is of fixed file or not over a span of time Actually my requirement is to check the size of the file in a specific directory for 60 seconds, and if it remains the same then I have to move to some other directory.Else I have to stop the execution. Request you to guide me in... (4 Replies)
Discussion started by: av_vinay
4 Replies

9. Shell Programming and Scripting

Convert Columns to Rows in a File

Hi I have a input file in the format ABC,111,2008Q2, 49K ABC,111,2008Q3, 0K ABC,111,2008Q4, 0K ABC,222,2008Q2, 49K ABC,222,2008Q3, 0K ABC,222,2008Q4, 0K XYZ,111,2008Q2, 49K XYZ,111,2008Q3, 0K XYZ,111,2008Q4, 0K XYZ,222,2008Q2, 49K XYZ,222,2008Q3, 0K XYZ,222,2008Q4, 0K The output file... (3 Replies)
Discussion started by: chrismt
3 Replies

10. Shell Programming and Scripting

convert rows into column

if u have a data 2 4 6 8 5 4 4 5 6 then result shud be like 2 4 6 7 5 4 4 5 6 (3 Replies)
Discussion started by: cdfd123
3 Replies
Login or Register to Ask a Question