Transpose comma delimited data in rows to columns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Transpose comma delimited data in rows to columns
# 1  
Old 06-27-2015
Transpose comma delimited data in rows to columns

Hello,
I have a bilingual database with the following structure
Code:
a,b,c=d,e,f

The right half is in a Left to right script and the second is in a Right to left script as the examples below show
What I need is to separate out the database such that the first word on the left hand matches the first word on the right hand and creates a wordlist of unique words
Code:
a=d
b=e
c=f

I wrote the following script in awk to handle this issue but it does not seem to work:
Code:
BEGIN{FS="="}
{n=split($1,a," ");split($2,b," ");for (i=1;i<=n;i++) print a[i]"="b[i]}

But it doesn't seem to work and spews out garbage. Please help.
My work environment is Windows and hence dos. A Perl script would also help.

Many thanks for your help
# 2  
Old 06-27-2015
Are a,b,c, etc., separated by commas? Your code, your description, and you sample output do not jibe., as far as I can see.

Can you post one or two lines of actual real data (or dummied up if exposing data is an issue), then post the expected output based on the input data. So, two lines would produce six lines of output?
# 3  
Old 06-27-2015
Sorry.
I should have mentioned that the words on each side are delimited by a comma.
Code:
a,b,c=d,e,f

Given this input,the resultant output would be 3 pairs of entities
Code:
a=d
b=e
c=f

Here is a live data sample. The left hand is to be read as Left to Right and the Right hand side is Right to left.
Code:
अंगणु=اَنگَڻُ
अंगलु,अंगल,अंगलनि=اَنگَلُ,اَنگَلَ,اَنگَلن
अंगिली=اَنگِليِ
अंगीकारु=اَنگيِڪارُ
अंगु,अंग,अंगनि=اَنگُ,اَنگ,اَنگن
अंगुस्तानो,अंगुस्ताने,अंगुस्ताना,अंगुस्ताननि=اَنگُستانو,اَنگُستاني,اَنگُستانا,اَنگُستانن

Many thanks for your query and interest
# 4  
Old 06-28-2015
Quote:
Originally Posted by gimley
Hello,
I have a bilingual database with the following structure
Code:
a,b,c=d,e,f

The right half is in a Left to right script and the second is in a Right to left script as the examples below show
What I need is to separate out the database such that the first word on the left hand matches the first word on the right hand and creates a wordlist of unique words
Code:
a=d
b=e
c=f

I wrote the following script in awk to handle this issue but it does not seem to work:
Code:
BEGIN{FS="="}
{n=split($1,a," ");split($2,b," ");for (i=1;i<=n;i++) print a[i]"="b[i]}

But it doesn't seem to work and spews out garbage. Please help.
My work environment is Windows and hence dos. A Perl script would also help.

Many thanks for your help
Try changing:
Code:
{n=split($1,a," ");split($2,b," ");for (i=1;i<=n;i++) print a[i]"="b[i]}

to:
Code:
{n=split($1,a,",");split($2,b,",");for (i=1;i<=n;i++) print a[i]"="b[i]}

When you have words separated by commas, splitting on spaces doesn't work.

Or you could try the simpler version:
Code:
awk -F'[,=]' '{o = NF / 2;for(i = 1; i <= o; i++) print $i "=" $(i + o)}' file

This User Gave Thanks to Don Cragun For This Post:
# 5  
Old 06-28-2015
Many thanks for correcting the code. I tested both and the second solution is faster
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Transpose rows to certain columns

Hello, I have the following data and I want to use awk to transpose each value to a certain column , so in case the value is not available the column should be empty. Example: Box Name: BoxA Weight: 1 Length :2 Depth :3 Color: red Box Name: BoxB Weight: 3 Length :4 Color: Yellow... (5 Replies)
Discussion started by: rahman.ahmed
5 Replies

2. Shell Programming and Scripting

Transpose rows to columns complex

Input: IN,A,1 IN,B,3 IN,B,2 IN,C,7 BR,A,1 BR,A,5 BR,C,9 AR,C,9 Output: CNTRY,A,B,C IN,1,5,7 BR,6,0,9 AR,0,0,9 (7 Replies)
Discussion started by: unme
7 Replies

3. Shell Programming and Scripting

awk to transpose every 7 rows into columns

input: a1 a2 a3 a4 a5 a6 a7 b1 b2 b3 .. b7 .. z1 .. z7 (12 Replies)
Discussion started by: ux4me
12 Replies

4. Shell Programming and Scripting

Transpose Data from Columns to rows

Hello. very new to shell scripting and would like to know if anyone could help me. I have data thats being pulled into a txt file and currently have to manually transpose the data which is taking a long time to do. here is what the data looks like. Server1 -- Date -- Other -- value... (7 Replies)
Discussion started by: Mikes88
7 Replies

5. Shell Programming and Scripting

Comma delimited row into multiple rows, repeat first value

i am building a database to keep track of unix groups. Using the command "ypcat group" I get an output similar to the following group1:GROUP:9999:user1,user2,user3 groupA:GROUP:1111:usera,userb,userc I want to convert this output so it looks like this group1:user1 group1:user2... (2 Replies)
Discussion started by: newreverie
2 Replies

6. Shell Programming and Scripting

transpose rows to columns

Any tips on how I can awk the input data to display the desired output per below? Thanking you in advance. input test data: 2 2010-02-16 10:00:00 111111111111 bytes 99999999999 bytes 90% 4 2010-02-16 12:00:00 333333333333 bytes 77777777777 bytes 88% 5 2010-02-16 11:00:00... (4 Replies)
Discussion started by: ux4me
4 Replies

7. Shell Programming and Scripting

Transpose columns to Rows

I have a data A 1 B 2 C 3 D 4 E 5 i would like to change the data A B C D E 1 2 3 4 5 Pls suggest how we can do it in UNIX. Start using code tags, thanks. Also start reading your PM's you get from Mods as well read the Forum Rules. That might not do any harm. (24 Replies)
Discussion started by: aravindj80
24 Replies

8. Shell Programming and Scripting

Transpose Rows Into Columns

I'm aware there are a lot of resources dedicated to the question of transposing rows and columns, but I'm a total newbie at this and the task appears to be beyond me. I have 40 text files with content that looks like this: Dokument 1 von 146 Orange County Register (California) June 26, 2010... (2 Replies)
Discussion started by: spindoctor
2 Replies

9. Shell Programming and Scripting

Transpose columns to Rows : Big data

Hi, I did read a few posts on the subjects, tried out a few solutions, but did not solve my problem. https://www.unix.com/302121568-post11.html https://www.unix.com/shell-programming-scripting/137953-large-file-columns-into-rows-etc-4.html Please help. Problem very similar to the second link... (15 Replies)
Discussion started by: genehunter
15 Replies

10. 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
Login or Register to Ask a Question