File Transpose


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File Transpose
# 1  
Old 11-18-2009
File Transpose

Hi ALL
I have one input file say FILE1 which looks as below.
a=1
b=2
c=3
a=4
b=5
c=6
.
.
.

Here a,b,c...etc are variable names.

The output file(FILE2) should look like

1,2,3
4,5,6
.....
.....

If in any case any of the variable does not come in the input file then in the output file same variable should be populated as NULL.
e.g:
Input file(FILE1)
----------
a=1
b=2
c=3
a=4
c=6
.
.
.
Then output file (FILE2) should look like:
1,2,3
4,,6
.....
.....


Please help me in wrinting the above script.

Thanks in advance.
# 2  
Old 11-18-2009

Code:
cut -d= -f2 FILE1 | paste -d ',,\n' - - -

# 3  
Old 11-18-2009
Hi Cfajohnson,
Thanks for the reply.
Your code is working fine for the first kind of input which i have mentioned above.
But in case of second kind of input the output should look like :

1,2,3
4,,6

but its coming as :
1,2,3
4,6,


Thanks.
# 4  
Old 11-18-2009
Use gawk, nawk or /usr/xpg4/bin/awk on Solaris.

Code:
awk -F= 'END {
  for (i = 1; i <= m; i ++)
    printf "%s", (i in _ ? i : x) \
    (!(i % 3) || i == m ? RS : ",")
  }    
{ _[$2]; $2 > m && m = $2 }' infile

# 5  
Old 11-18-2009
Independent of number of variables:
Code:
awk -F= 'function prl(){for(i in A){s=s?s","A[i]:A[i];A[i]=""}print s; s=""}
         A[$1]!=""{prl()} {A[$1]=$2} END{prl()}' infile

# 6  
Old 11-18-2009
perl:

Code:
local $/;
my $str=<DATA>;
$str=~s/\n/ /g;
my @tmp = $str=~ /((?:a=[^abc]*)?(?:b=[^abc]*)?(?:c=[^abc]*)?)/g;
for(my $i=0;$i<=$#tmp-1;$i++){
  $tmp[$i]=~s/(?:a=([^abc]*))?(?:b=([^abc]*))?(?:c=([^abc]*))?/$1,$2,$3/;
  print $tmp[$i],"\n";
}
__DATA__
a=1
b=2
c=3
a=4
b=5
c=6
a=7
a=8
b=9
a=10
c=11
b=12
c=13
b=14
b=15
a=16
a=17
a=18
c=19

output:
Code:
1 ,2 ,3 
4 ,5 ,6 
7 ,,
8 ,9 ,
10 ,,11 
,12 ,13 
,14 ,
,15 ,
16 ,,
17 ,,
18 ,,19

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Transpose a file

Hello, I have a file which looks like this Input: Sample Genotype Assay Well plate Sample1 T xx A01 1 Sample2 T xx A01 2 Sample3 T xx A01 3 Sample4 T xx A02 4 Sample5 T xx A02 5 Sample6 T xx A02 ... (4 Replies)
Discussion started by: nans
4 Replies

2. Shell Programming and Scripting

Transpose a txt file

Hello, I have a text file with 148 rows and 2532691 columns. I need to transpose the data. The command that I am using is awk ' { for (i=1; i<=NF; i++) { a = $i } } NF>p { p = NF } END { for(j=1; j<=p; j++) { str=a for(i=2; i<=NR; i++){ ... (6 Replies)
Discussion started by: nans
6 Replies

3. UNIX for Dummies Questions & Answers

Transpose File

Have various files like this: InSlot=0x00000001 InPort=0x00000000 Inref=0x0000002f InSID=0x00000001 OutSlot=0x00000001 OutPort=0x00000002 Outref=0x00000000 OutSID=0x0000000b OutUName_2=14 InSlot=0x00000001 InPort=0x00000000 Inref=0x000001a8 InSID=0x00000001 OutSlot=0x00000001... (5 Replies)
Discussion started by: K@rlos
5 Replies

4. Shell Programming and Scripting

File transpose problem

Hi Friends, I have a file with a structure like this: <file1.csv> field1,field2,field3,field4,field5,field6,field7,field8,field9,field10,field11,field12 Few Salient points on the file's structure (1)The fields from field1 to field6 is fixed and they would always be present in the file... (2 Replies)
Discussion started by: mehimadri12
2 Replies

5. Shell Programming and Scripting

Transpose whole file and specific columns

Hi, I have a file like this a b c d e f g h i j k l Case1: I want to transpose the whole file Output1 a d g j b e h k c f i l Case2 Transpose a specific column - Say 3rd (6 Replies)
Discussion started by: jacobs.smith
6 Replies

6. Shell Programming and Scripting

Transpose a text file.

Hello, I have a text file which is like a matrix m rows and n columns. Now I want to convert it into n rows and m columns. Thanks for hint. (1 Reply)
Discussion started by: zhshqzyc
1 Replies

7. Shell Programming and Scripting

Transpose a file

input IndID ID1 ID2 ID3 a1 a/a b/b c/c a2 a/a b/b c/c a3 a/b b/b c/d a6 a/b b/b c/e a8 a/a b/c c/e a9 b/b b/d c/e output IDName IndID IDtype C_No ID1 a1 a/a 1 ID1 a2 a/a 1 ID1 a8 ... (1 Reply)
Discussion started by: stateperl
1 Replies

8. Shell Programming and Scripting

Rows to Columns - File Transpose

Hi I have an input file and I want to transpose it but I need to take care that if any field is missing for a record it should be popoulated with space for that field - using a shell script INFILE ---------- emp=1 sal=2 loc=abc emp=2 sal=21 sal=22 loc=xyz emp=5 loc=abc OUTFILE... (10 Replies)
Discussion started by: 46019
10 Replies

9. Shell Programming and Scripting

Transpose an entire text file

Hello all, I want to transpose the rows of a file to the columns (every characters include spaces), i.e.: input: abcdefg 123 456 output: a1 b2 c3 d e4 f5 g6 I wrote a script: #!/bin/csh -f (15 Replies)
Discussion started by: heavenfish
15 Replies

10. Shell Programming and Scripting

transpose file

Hi all, I have a file in the below format.... <A> B C <A> E F <A> G H I need the result file to be: <A>BC <A>EF <A>GH (3 Replies)
Discussion started by: new_ds_man
3 Replies
Login or Register to Ask a Question