Bring values in the second column into single line (comma sep) for uniq value in the first column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bring values in the second column into single line (comma sep) for uniq value in the first column
# 8  
Old 08-29-2016
Sorry for causing confusion with input.. I used extra empty line for readability.
R. Singh your command works great.. Can you explain how this part of awk works?
($1 in A){$1=X} {A[Q]=A[Q]?A[Q] s1 $0:$0}
# 9  
Old 08-29-2016
Hello kchinnam,

Could you please try following.
Code:
awk '{Q=$1}     #### Assigning $1's value to a variable named Q here.
 ($1 in A)      #### Checking if $1(first field) is already present in array A, if yes then execute following statements.)
{$1=X}          #### Nullifying the values of $1 here.
{A[Q]=A[Q]      #### Here I am concatenating or assigning the values to array A whose index is variable Q's value(which is $1).
?               #### When a condition provided before =(equal sign) gets TURE so statements after ? should get executed.
A[Q] s1 $0      #### So if condition is TRUE(which is here A[Q] means if value of array A whose index is Q is already present) so I am concatenating the values of A[Q] s1 and current line($0) here s1=, which I had mentioned into last before calling Input_file.
:               #### If above mentioned condition gets FALSE(means no value of A[Q] is present yet) then do following.
$0}             #### Assign array A's value with index Q to $0(current line).
END{            #### Starting END block here.
for(i in A){    #### Starting a for loop which will traverse inside array A(to fetch it's all values).
print A[i]}}    #### printing the values of array A whose index is i(a variable whose value is getting assigned while traversing in for loop).
' s1=","        #### Providing the value of variable named s1 to ,(As mentioned above too).
Input_file      #### Mentioning Input_file here.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 10  
Old 08-29-2016
Try also
Code:
awk '$1 != LAST {printf "%s%s", DL, $1; LAST = $1; DL = RS} {printf ",%s", $2} END {print _}' FS=, file
jvm01, Web 2.0 Feature Pack Library, IBM WebSphere JAX-RS, Custom01 Shared Library
jvm02, Web 2.0 Feature Pack Library, IBM WebSphere JAX-RS
jvm03, Web 2.0 Feature Pack Library, IBM WebSphere JAX-RS, Custom03 Shared Library

This User Gave Thanks to RudiC For This Post:
# 11  
Old 08-29-2016
Hi Rudi your command is working great as well.
One benefit I see with R.Singh's is even if jvm names in first column are not in sorted order(next to each),, output is producing uniq jvms with correct second column values..
Thanks for great solutions.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

HELP - uniq values per column

Hi All, I am trying to output uniq values per column. see file below. can you please assist? Thank you in advance. cat names joe allen ibm joe smith ibm joe allen google joe smith google rachel allen google desired output is: joe allen google rachel smith ibm (5 Replies)
Discussion started by: Apollo
5 Replies

2. Shell Programming and Scripting

Replacing values into a single column. sed/PERL

Hello everyone, i need to replace in the second column of my csv file, points by nothing and dash by comma like this: Input: 1 2 1;12.111.312-2;1.2;2;1-3 2 1 1;11.212.331-1;3.3;1;2-2 Output: 1 2 1;12111312;2;1.2;2;1-3 2 1 1;11212331;1;3.3;1;2-2 SED or PERL commands preferably. ... (7 Replies)
Discussion started by: satir
7 Replies

3. Shell Programming and Scripting

How to use regex on particular column (Removing comma from particular column)?

Hi, I have pipe separated file which contains some data having comma(,) in it. I want to remove the comma(,) only from particular column without changing data in other columns. Below is the sample data file, I want to remove the comma(,) only from 5th column. $ cat file1 ABC | DEF, HIJ|... (6 Replies)
Discussion started by: Prathmesh
6 Replies

4. Shell Programming and Scripting

splitting single column values into text and number component

Hey guys, I have a column that consists of string and integer values without a distinctive deliminator, looking like this... 7ASA 14LAL 245FOO 656MOM 87577DAD ... I want to split the column into two columns, one containing the numbers and one containing the text part. edit: numbers... (3 Replies)
Discussion started by: origamisven
3 Replies

5. UNIX for Dummies Questions & Answers

Re: How To Use UNIQ UNIX Command On single Column

Hi , Can You Please let Know How use unix uniq command on a single column for deleting records from file with Below Structure.Pipe Delimter File . Source Name | Account_Id A | 101 B... (2 Replies)
Discussion started by: anudeepkumar123
2 Replies

6. Shell Programming and Scripting

Multiple lines in a single column to be merged as a single line for a record

Hi, I have a requirement with, No~Dt~Notes 1~2011/08/1~"aaa bbb ccc ddd eee fff ggg hhh" Single column alone got splitted into multiple lines. I require the output as No~Dt~Notes 1~2011/08/1~"aaa<>bbb<>ccc<>ddd<>eee<>fff<>ggg<>hhh" mean to say those new lines to be... (1 Reply)
Discussion started by: Bhuvaneswari
1 Replies

7. Shell Programming and Scripting

rearrange the column names with comma as column delimiter

Hi, I am new to shell scripting, i have requirement can any one help me out in this regrads, in directory i have file like invoice1.txt, invoice2.txt in each file i have fixed number of columns, 62 in number but they are randomly arranged.like for first file invoice1.txt can have columns... (5 Replies)
Discussion started by: madhav62
5 Replies

8. Shell Programming and Scripting

Concatenating column values with unique id into single row

Hi, I have a table in Db2 with data say id_1 phase1 id_1 phase2 id_1 phase3 id_2 phase1 id_2 phase2 I need to concatenate the values like id_1 phase1,phase2,phase3 id_2 phase1,phase2 I tried recursive query but in vain as the length of string to be concatenated in quite long. ... (17 Replies)
Discussion started by: jsaravana
17 Replies

9. Shell Programming and Scripting

Converting Column values to comma delimted single Row

I have a requirement in which i have to read a file which has multiple columns seperated by a pipe "|" from this i have to read each column values seperately and create a comma seperated row for the column and write to another file. eg: Input file: ColA ColB 1 2 2 x 3 y... (5 Replies)
Discussion started by: nvuradi
5 Replies

10. Shell Programming and Scripting

need to get the last word in comma sep line

I have a file with aaa,bbb,ccc,dddd,eee,xyz aaa,bbb,ccc,dddd,eee,xyz,12345,rty aaa,bbb,ccc,dddd,eee,xyz,12345,rty,tsrt 1. line columns are not fixed 2. all words are seperated by comma what i want is always the string after last comma. regards, Senthil... (9 Replies)
Discussion started by: senthilk615
9 Replies
Login or Register to Ask a Question