Transpose File


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Transpose File
# 1  
Old 02-16-2015
Transpose File

Have various files like this:

Code:
InSlot=0x00000001
InPort=0x00000000
Inref=0x0000002f
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000002
Outref=0x00000000
OutSID=0x0000000b
OutUName_2=14[asass]
InSlot=0x00000001
InPort=0x00000000
Inref=0x000001a8
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000000
Outref=0x00000023
OutSID=0x00000001
OutUName_2=12[asasdas]
InSlot=0x00000001
InPort=0x00000000
Inref=0x000000e9
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000000
Outref=0x00000020
OutSID=0x0000000b
OutUName_2=8[asaede]


Trying to transpose the file to nine columns: (from InSlot toOutUName)

Code:
InSlot,InPort,Inref,InSID,OutSlot,OutPort,Outref,OutSID,OutUName



I have tried tr and and paste with no luck. Probably AWK is the solution but I am not familiar enough with it. Thanks!

Last edited by vgersh99; 02-16-2015 at 05:53 PM.. Reason: code tags, please!
# 2  
Old 02-16-2015
Code:
awk '{ 
  i = 0; 
  while ( i == 0) {
    printf "%s", $0;
    if (getline <= 0) {
      break;
    };
    i = index($0, "InSlot");
    if (i == 0) {
      printf ",";
    } else {
      printf "\n";
    };
  }
}

END {
  printf "\n";
}' filename

# 3  
Old 02-16-2015
with some assumptions:
Code:
awk -F= '{printf("%s%s",$2,(FNR%9)?OFS:ORS)}' OFS=, myFile

or
Code:
awk -F= '{printf("%s%s",$2,($1=="OutUName_2")?ORS:OFS)}' OFS=, myFile

# 4  
Old 02-16-2015
Unfortunaterly both of the solutions only outputs the last column:

14[sdad]
,7[dfsfsdfs]
,4[ddsddf]
# 5  
Old 02-16-2015
given a sample file myFile:
Code:
InSlot=0x00000001
InPort=0x00000000
Inref=0x0000002f
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000002
Outref=0x00000000
OutSID=0x0000000b
OutUName_2=14[asass]
InSlot=0x00000001
InPort=0x00000000
Inref=0x000001a8
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000000
Outref=0x00000023
OutSID=0x00000001
OutUName_2=12[asasdas]
InSlot=0x00000001
InPort=0x00000000
Inref=0x000000e9
InSID=0x00000001
OutSlot=0x00000001
OutPort=0x00000000
Outref=0x00000020
OutSID=0x0000000b
OutUName_2=8[asaede]

running
awk -F= '{printf("%s%s",$2,($1=="OutUName_2")?ORS:OFS)}' OFS=, myFile
produces:
Code:
0x00000001,0x00000000,0x0000002f,0x00000001,0x00000001,0x00000002,0x00000000,0x0000000b,14[asass]
0x00000001,0x00000000,0x000001a8,0x00000001,0x00000001,0x00000000,0x00000023,0x00000001,12[asasdas]
0x00000001,0x00000000,0x000000e9,0x00000001,0x00000001,0x00000000,0x00000020,0x0000000b,8[asaede]

There's either your real file is not what you quoted above OR you're not following the suggested solution.
Trying giving a REAL sample input file AGAIN - please do use code tags.
If you created a file under Windows, make sure there're no ^M-s.
# 6  
Old 02-17-2015
Can we see example desired output?
 
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. 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

4. 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

5. 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

6. 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

7. 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

8. Shell Programming and Scripting

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 ..... ..... (5 Replies)
Discussion started by: 46019
5 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