Convert Column data values to rows


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Convert Column data values to rows
# 1  
Old 03-05-2015
Convert Column data values to rows

Hi all ,

I have a file with the below content


Code:
Header Section
employee|employee name||Job description|Job code|Unitcode|Account|geography|C1|C2|C3|C4|C5|C6|C7|C8|C9|Csource|Oct|Nov|Dec|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep
 
Data section 
8243651u7|juanalk||emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|10|20|30|40|50|0|0|0|0|0|0|0

I need to convert this file as below
Code:
Header Section 
employee |employee name |Period|Job description |Job code |Unit code |Account |geography |C1 |C2 |C3|C4|C5|C6|C7|C8|C9|Csource |Data
 
 
Data section 
8243651u7|juanalk|Oct|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|10
8243651u7|juanalk|Nov|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|20
8243651u7|juanalk|Dec|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|30
8243651u7|juanalk|Jan|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|40
8243651u7|juanalk|Feb|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|50
8243651u7|juanalk|Mar|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|Apr|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|May|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|Jun|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|Jul|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|Aug|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0
8243651u7|juanalk|Sep|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||source1|0


Basically all the 12 months data is coming in columns initially and I need to keep that data into rows now .

Can anyone help me how this can be done in unix fastly

thanks

Moderator's Comments:
Mod Comment Please use separate sets of code tags for separate code and data samples

Last edited by Scrutinizer; 03-05-2015 at 03:58 AM..
# 2  
Old 03-05-2015
Any attempts from your side?

---------- Post updated at 11:19 ---------- Previous update was at 11:02 ----------

However, try
Code:
awk     '/[Ss]ection/   {print; next}
         NR==2          {for (i=NF; i>=NF-11; i--) {M[i]=$i; $i=""}; sub ("\|*$", "|Data")
                        }
         NR>4           {FN=NF  
                         for (i=FN; i>=FN-11; i--)      {D[i]=$i; $i=""}; sub ("\|*$", "")
                         for (i=FN-11; i<=FN; i++)      {$3=M[i]; $(FN-11)= D[i]  
                                                         print
                                                        }
                         next
                        }
         1
        ' FS="|" OFS="|" file
Header Section
employee|employee name||Job description|Job code|Unitcode|Account|geography|C1|C2|C3|C4|C5|C6|C7|C8|C9|Csource|Data
 
Data section 
8243651u7|juanalk|Oct|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|10
8243651u7|juanalk|Nov|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|20
8243651u7|juanalk|Dec|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|30
8243651u7|juanalk|Jan|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|40
8243651u7|juanalk|Feb|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|50
8243651u7|juanalk|Mar|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|Apr|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|May|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|Jun|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|Jul|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|Aug|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0
8243651u7|juanalk|Sep|emplsi|1235|7835|67239|Geo12|hrfnu|epoifd|jdu|kifdm|isj|||||sopurce1|0

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

DB2 Query -Convert multi values from column to rows

Hi Team I am using DB2 artisan tool and struck to handle multi values present in columns that are comma(,) separated. I want to convert those column values in separate rows . For example : Column 1 Column2 Jan,Feb Hold,Sell,Buy Expected Result Column1 ... (3 Replies)
Discussion started by: Perlbaby
3 Replies

2. Shell Programming and Scripting

Convert rows into column along with header

Hi, I have a requirement to format the data in a new order. Here is my source format : ppp ***Wed Dec 16 10:32:30 GMT 2015 header1 header2 header3 header4 header5 server1 0.00 0.02 0.07 0.98 server2 0.01 0.00 0.08 0.79 server3 0.05 0.82 0.77 0.86 ... (18 Replies)
Discussion started by: john_prince
18 Replies

3. Shell Programming and Scripting

Convert rows to column and add header

Hi, I need help to convert rows in input file into a table. inputfile 192.98.1 192.98.192.98.17 VVC family Zorro 10 192.98.1 192.98.192.98.17 VVC family Ace 1 192.98.1 192.98.192.98.17 VVC family ... (4 Replies)
Discussion started by: redse171
4 Replies

4. Shell Programming and Scripting

Convert Rows into Column

Hi Experts, I have a requirement to convert rows into columns. For e.g. Input File: Output File should be like Appreciate if you could suggest code snippet(may be awk) for above requirement... Thanks in Advance for your help... (3 Replies)
Discussion started by: sai_2507
3 Replies

5. Shell Programming and Scripting

How to convert values in a line to rows?

hi, I am basically running a sql that returns me values and I have stored them to a variable for example value of the variable will be: 123 124 345 now I want to write values stored in the variable into a file as 123 124 345 thanks in advance (3 Replies)
Discussion started by: babom
3 Replies

6. Shell Programming and Scripting

Convert Column Values to a Range of Values

I have a list of columns with values that I need to transform into a row containing the range of each column. For example: "Column A" 1 2 3 4 10 12 14 15 16 17 18 "Column B" 1 4 5 6 (4 Replies)
Discussion started by: newbio
4 Replies

7. UNIX for Dummies Questions & Answers

Suggestion to convert data in rows to data in columns

Hello everyone! I have a huge dataset looking like this: nameX nameX 0 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 ............... nameY nameY 2 2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 ..... nameB nameB 0 1 2 2 2 2 2 2 2 2 1 2 2 2 1 2 2 2 ..... (can be several thousands of codes) and I need... (8 Replies)
Discussion started by: kush
8 Replies

8. Shell Programming and Scripting

Convert rows into column groups

Hi I have the text file like this "A" "AA Info" "AA Text" "AAA" "ABC" "ABC Info" "ABC Tech" "AGH" "SYN" "SYMBony" "SYN BEREN" Like about 2000 lines Output would be in Column with groups like following "A" "AA Info", "AA Text" "AAA" "ABC","ABC Info","ABC Tech" (0 Replies)
Discussion started by: selvanraj
0 Replies

9. Shell Programming and Scripting

Convert Column to rows

Hi, I have a file with below contents. Heading1 Heading2 Heading3 Heading4 Value1 Value2 Value3 Value4 The file has only 2 rows and is tab separated The desired output is : Heading1 Value1 Heading2 Value2 Heading3 Value3 Heading4 Value4 CAn you please help? (5 Replies)
Discussion started by: kaponeh
5 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