Data rearranging from rows to column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Data rearranging from rows to column
# 1  
Old 09-16-2015
Data rearranging from rows to column

Hello Everyone,

I have a input file looks like
Code:
-0.005-0.004-0.003-0.002-0.00100.0010.0020.0030.0040.005

My desired output should look like
Code:
-0.005
-0.004
-0.003
-0.002
-0.001
0
0.001
0.002
0.003
0.004
0.005

I had some success in getting the desired output. But i face a problem when i try to write the numbers from
PHP Code:
-0.00100.001 
. I always get the output such as
Code:
-0.005
-0.004
-0.003
-0.002
-0.0010
0.001
0.002
0.003
0.004
0.005

without the 0 inbetween -0.001 and 0.001

I would really glad if anyone can help me out in this.

Thanks
# 2  
Old 09-16-2015
Hello dinesh.n,

Could you please check if following may help you. As per shown input I have prepared if there are more conditions are there then kindly let me know.
Code:
awk --re-interval '{gsub(/^\-[0]\.[0-9]{3}/,"&\n",$0);gsub(/[0]{1,2}\.[0-9]{3}/,"&\n",$0);A=$0} END{gsub(/00\./,"0\n0.",A);gsub(/\n\n/,"\n",A);print A}' Input_file

Output will be as follows.
Code:
-0.005
-0.004
-0.003
-0.002
-0.001
0
0.001
0.002
0.003
0.004
0.005

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 09-16-2015
Hello R. Singh,

Thanks for your reply
# 4  
Old 09-16-2015
Hello R. Sing,

Please have a look at my original input file(U_z1) and my output file (U_z17)

Thanks
# 5  
Old 09-16-2015
Hello Dinesh,

A little change as per your input file's format has done the trick, could you please check it and let me know if All is Well.
Code:
 awk --re-interval '{gsub(/-[0]\.[0-9]{2,3}/,"&\n",$0);gsub(/[0]{1,2}\.[0-9]{3}/,"&\n",$0);A=A?A ORS $0:$0} END{gsub("\n\n","\n",A);print A}'  Input_file

Not pasting output as it is huge is in size.
EDIT: Adding a non one liner form of solution now.
Code:
awk --re-interval '{
                        gsub(/-[0]\.[0-9]{2,3}/,"&\n",$0);
                        gsub(/[0]{1,2}\.[0-9]{3}/,"&\n",$0);
                        A=A?A ORS $0:$0
                   }
                        END{
                                gsub("\n\n","\n",A);
                                print A
                   }
                  ' Input_file

Also want to add here your initial input was not having in between proper 0s in positive values so made a slight change in that.

Thanks,
R. Singh

Last edited by RavinderSingh13; 09-16-2015 at 08:39 AM..
This User Gave Thanks to RavinderSingh13 For This Post:
# 6  
Old 09-16-2015
Hello R. Singh,

Please find the output file. The output is from the first code you posted.
Code:
awk --re-interval '{gsub(/^\-[0]\.[0-9]{3}/,"&\n",$0);gsub(/[0]{1,2}\.[0-9]{3}/,"&\n",$0);A=$0} END{gsub(/00\./,"0\n0.",A);gsub(/\n\n/,"\n",A);print A}' Input_file

Looks like some values are still not sorted out. Could you please help me in this. The other code doesn't work properly.

Thanks
Dinesh.N
# 7  
Old 09-16-2015
Hello Dinesh,

Could you please try following and let me know if this helps.
Code:
 cat check_match.ksh
 awk --re-interval '{gsub(/-[0]\.[0-9]{2,3}/,"&\n",$0);gsub(/[0]{1,2}\.[0-9]{3}/,"&\n",$0);A=A?A ORS $0:$0} END{gsub("\n\n","\n",A);print A}' Input > temp_out
awk '{B=$0;A=gsub(/\./,X,B);if(A==2){C=$0;match(C,/.*\./);gsub(/\..*\./,"0.",$0);print "0" substr(C,RSTART,RLENGTH-1) ORS $0} else {print $0}}' temp_out

NOTE: You need to run the script named check_match.ksh, with giving proper permissions to it.


Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to transpose pieces of data in a column to multiple rows?

Hello Everyone, I am very new to the world of regular expressions. I am trying to use grep/sed for the following: Input file is something like this and there are multiple such files: abc 1 2 3 4 5 ***END*** abc 6 7 8 9 ***END*** abc 10 (2 Replies)
Discussion started by: shellnewuser
2 Replies

2. UNIX for Beginners Questions & Answers

Rearranging the column

I have a text file like this, I would like to rearrange the first column (Name) according to the third column(percentage)in descending order. I mean methionine with the highest percentage should be the first one to appear under the name column. But I also want to exclude the headers from this... (2 Replies)
Discussion started by: cathum
2 Replies

3. Shell Programming and Scripting

How to separate rows of data into another column?

I have data such as below where the value in second field is the same as that in the row after. 123456,22222,John,0,xyz 234567,22222,John1,1,cde 43212,3333,Jean,3,pip 84324,3333,Abel,2,cat I'd like to rearrange the output like below to put such records beside each other and separated with... (5 Replies)
Discussion started by: james2009
5 Replies

4. Shell Programming and Scripting

Convert Column data values to rows

Hi all , I have a file with the below content 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 ... (1 Reply)
Discussion started by: Hypesslearner
1 Replies

5. Shell Programming and Scripting

[Solved] Compare column data in all the rows

Hi.. In the below sorted input file.. I am comparing the first 3 columns of data one by one row and it is a pipeline delimitter file.. AA|BB|CC|line1 AA|BB|CC|ine4 AA|BB|CC|line2 BB|CC|DD|line3 BB|CC|DD|line5 If first 3 columns of data matches with any record in the file the... (4 Replies)
Discussion started by: NareshN
4 Replies

6. Shell Programming and Scripting

Transpose Column of Data to Rows

I can no longer find my commands, but I use to be able to transpose data with common fields from a single column to rows using a command line. My data is separated as follows: NAME=BOB ADDRESS=COLORADO PET=CAT NAME=SUSAN ADDRESS=TEXAS PET=BIRD NAME=TOM ADDRESS=UTAH PET=DOG I would... (7 Replies)
Discussion started by: docdave78
7 Replies

7. Shell Programming and Scripting

Counting and rearranging the rows

Hi, I have a file that I re-arranged using awk and unix commands to produce a file that looks like this: JOE JOE JOE JOE JOE BOB BOB HI HI HI I want to count how many of the same rows there are and print it on the second column while only maintaining the original name once. The... (5 Replies)
Discussion started by: phil_heath
5 Replies

8. Shell Programming and Scripting

Summing up rows data regarding 1st column

Dear all, I have one file like LABEL A B C D E F G H I J K L M N G02100 64651.3 25630.7 8225.21 51238 267324 268005 234001 52410.9 18598.2 10611 10754.7 122535 267170 36631.4 G02100 12030.3 8260.15 8569.91 ... (4 Replies)
Discussion started by: AAWT
4 Replies

9. Shell Programming and Scripting

column data to rows every n line

Hi every one, I am trying to organise an input text file like: input 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 into an output as following: output file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (5 Replies)
Discussion started by: nxp
5 Replies

10. UNIX for Dummies Questions & Answers

Find different column numbers among rows in data

I want to find the different column numbers among rows in a file. For example: A001 a b c d e ... N A002 a b c d e ... N A003 a b c d e ... N+1 A004 a b c d e ... N A005 a b c d e ... N+2 : : For most of the lines I will have N columns (say 1000 rows) in each line except the line 3... (5 Replies)
Discussion started by: AMBER
5 Replies
Login or Register to Ask a Question