Need Help in rearranging the content of a file comma seperated


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need Help in rearranging the content of a file comma seperated
# 1  
Old 09-02-2015
Need Help in rearranging the content of a file comma seperated

I have a file with the below content
Code:
a = test1
b =  test2
a = test3
b= test4
c = test6
b = test5
d = test7
d = test9

Need the output to be as follows
Code:
a = test1,test3
b = test2, test5
c = test6
d = test7, test9

Not able to figure out how to do it Smilie
# 2  
Old 09-02-2015
Quote:
Originally Posted by iron_michael86
I have a file with the below content
Code:
a = test1
b =  test2
a = test3
b= test4
c = test6
b = test5
d = test7
d = test9

Need the output to be as follows
Code:
a = test1,test3
b = test2, test5
c = test6
d = test7, test9

Not able to figure out how to do it Smilie
Why are there spaces in the output before test5 and test9 but no space before test3?

Why doesn't test4 appear in the output?
# 3  
Old 09-02-2015
While we can deal with variations (e.g. varying count of spaces) in the input file, the variations (inconsistencies?) in your output can't be met unless you specify exactly where and when spaces should be inserted. Try:
Code:
awk '
        {gsub(/ /,"")
         T[$1]=T[$1] DL[$1] $2
         DL[$1]=","
        }
END     {for (t in T) print t " = " T[t]
        }
' FS="="  file
a = test1,test3
b = test2,test4,test5
c = test6
d = test7,test9

# 4  
Old 09-02-2015
Hello iron_michael86,

Following may help you in same too.
Code:
awk -F" *= *" '{A[$1]=A[$1]?A[$1] OFS $NF:$NF} END{for(i in A){print i " = " A[i]}}' OFS=,  Input_file

Output will be as follows.
Code:
a = test1,test3
b = test2,test4,test5
c = test6
d = test7,test9

Thanks,
R. Singh

Last edited by RavinderSingh13; 09-02-2015 at 06:26 AM..
# 5  
Old 09-02-2015
Code:
perl -nlaF'/\s*=\s*/' -e 'push @{$seen{$F[0]}}, $F[1]; END{$"=q{,};for $k (sort keys %seen){print "$k = @{$seen{$k}}"}}' iron_michael86.file
a = test1,test3
b = test2,test4,test5
c = test6
d = test7,test9

or
Code:
perl -nlaF'/\s*=/' -e 'push @{$seen{$F[0]}}, $F[1]; END{$"=q{,};for $k (sort keys %seen){print "$k = @{$seen{$k}}"}}' iron_michael86.file 
a =  test1, test3
b =   test2, test4, test5
c =  test6
d =  test7, test9

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Need help removing leading spaces from one field in comma seperated file

Using awk or sed, I'd like to remove leading spaces after a comma and before a right justified number in field 6. Sounds simple but I can't find a solution. Each field's formatting must stay intact. Input: 40,123456-02,160,05/24/2012,02/13/1977, 10699.15,0 Output:... (5 Replies)
Discussion started by: Scottie1954
5 Replies

2. Shell Programming and Scripting

Convert comma seperated file to line seperated.

Hi, I have data like this. 1,2,3,4 Output required: 1 2 3 4 I am trying to use tr function but getting error. Help is appreciated. (6 Replies)
Discussion started by: pinnacle
6 Replies

3. Shell Programming and Scripting

Passing Comma seperated arguments

Hi How to takes coma seperated arguments and and parsing each argument to varaiable that has used further in the script. (1 Reply)
Discussion started by: Reddy482
1 Replies

4. Shell Programming and Scripting

Script to append a value seperated by comma

I have a file like below. How can I add a new value after moss separated by a comma. This adding script should work in such a way that each time i pass a value it should be added one after the other separated by commas. hru:122: hello:123:john,philip,mary,kp,moss hi:124: bye:125: Can... (7 Replies)
Discussion started by: Tuxidow
7 Replies

5. Shell Programming and Scripting

perl help for comma seperated output

Hi, how can i make a comma seperated output summary. i attached the sample log file. I have to capture these data in the log file. Arcotid Time Stamp, Username, Success, Failure, Error Code, Error Message In the log snippet the userID can be found in- Code Arcot Native Server:... (3 Replies)
Discussion started by: namishtiwari
3 Replies

6. Shell Programming and Scripting

Trimming fields for comma or pipe seperated file

I have file like this FileA: abc , "helloworld" , america def,asia, japan ghi, africa, ipl Output Needed: abc,"helloworld",america def,asia,japan ghi,africa,ipl I would like to implement using awk. I want to trim each field for its leading and trailing spaces. (7 Replies)
Discussion started by: pinnacle
7 Replies

7. Shell Programming and Scripting

Removing blank lines from comma seperated and space seperated file.

Hi, I want to remove empty/blank lines from comma seperated and space seperated files Thanks all for help (11 Replies)
Discussion started by: pinnacle
11 Replies

8. UNIX for Dummies Questions & Answers

Search and then concat 4m other file (comma seperated)

My query is now a bit simplified. file1.txt names; ID; value1 ; values N; ABC; 1 ; a18 ; ... CDF; 2 ; b16 ; .. ABC; 1 ; c13 ; ...... EFG; 3 ;d12 ; ... file2.txt ID(Unique);smVals; smVal1; smVal N; 1; ...; ...; ...; 2; ..; ..; ..; 3; ..; ..; ..; ... (1 Reply)
Discussion started by: szchmaltz
1 Replies

9. UNIX for Advanced & Expert Users

How to load comma seperated values file (*.csv) into Oracle table

Hi all I need to input values in a .csv file into my Oracle table running in Unix, I wonder what would be the command to do so... The values are recorded in an excel file and I tried using a formatted text file to do so but failed because one of the field is simply too large to fit in the... (4 Replies)
Discussion started by: handynas
4 Replies

10. UNIX for Dummies Questions & Answers

How to load comma seperated values file (*.csv) into Oracle table

Hi all I need to input values in a .csv file into my Oracle table running in Unix, I wonder what would be the command to do so... The values are recorded in an excel file and I tried using a formatted text file to do so but failed because one of the field is simply too large to fit in the... (5 Replies)
Discussion started by: handynas
5 Replies
Login or Register to Ask a Question