Visit Our UNIX and Linux User Community


Concatenate two columns in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Concatenate two columns in a file
# 1  
Old 08-11-2014
Concatenate two columns in a file

Hi

i am having one requirement like to concatenate two columns in to one columns, can any one help on this please sample scenario i am placing below

Code:
COL1,COL2,COL3,COL4
1,A,B,C,D
2,e,f,g,h

ouput should be 3 columns like below.

Code:
COL1,COL2,newcolumns 
1,A,B,CD
2,e,f,gh


Thanks in advance.

Last edited by Franklin52; 08-11-2014 at 07:21 AM.. Reason: Please use CODE tags, not ICODE tags for code blocks. Thanks.
# 2  
Old 08-11-2014
One way:
Code:
awk -F, '{$4=$4 $5;NF=4}1' OFS=, file

# 3  
Old 08-11-2014
sorry it's not working

its just displaying the file content as output
Code:
awk -F, '{$4=$4 $5;NF=4}1' OFS=, /home/dsadm/rpt/dstempdir/SCRIPT_SEQ_LOG/test.txt

Moderator's Comments:
Mod Comment Please use CODE tags rather than ICODE tags for code, input & output/errors

Last edited by rbatte1; 08-11-2014 at 09:16 AM.. Reason: Changed ICODE tags to just CODE tags
# 4  
Old 08-11-2014
Hello,

Here is one more solution for same.

Code:
awk -F, '{$NF=$(NF-1) $NF}; {a=NF} {for(i=1;i<=NF;i++){if(i%a==0){ORS="\n"; print $i}  else {ORS=","; print $i}}}' OFS=","  filename

output will be as follows.

Code:
COL1,COL2,COL3,COL3COL4
1,A,B,C,CD
2,e,f,g,gh



Thanks,
R. Singh
# 5  
Old 08-11-2014
thanks Singh...

but i dont want to display the COL3 and COL4 values. i Just want to display the new concatenated column only
# 6  
Old 08-11-2014
I am not an expert in unix to tell the most effective way to get your result. But hope this will help you as a temporary fix. Try the below code
Code:
awk -F, '{print $1","$2","$3","$4$5}' <filename>

I have tried in my unix box and have got the below output which is same as you mentioned
Code:
Col1,Col2,Col3,Col4
1,A,B,CD
2,e,f,gh



Moderator's Comments:
Mod Comment Please use CODE tags for code, input & output/errors

Last edited by rbatte1; 08-11-2014 at 09:17 AM.. Reason: Added CODE tags
This User Gave Thanks to ssk250 For This Post:
# 7  
Old 08-11-2014
Please use below

Hello Bhaskar,
This is what you need??
Code:
$ cat file3
COL1,COL2,COL3,COL4,COL5
1,A,B,C,D
2,e,f,g,h

Code:
$ cat file3 | awk -F "," '{out=$1; for(i=2;i<=NF-2;i++){out=out","$i}; print out","$(NF-1)$NF}'
COL1,COL2,COL3,COL4COL5
1,A,B,CD
2,e,f,gh

If you always want to join last two columns in your file then you can use above.


Moderator's Comments:
Mod Comment Please use CODE tags for code, input & output/errors

Last edited by rbatte1; 08-11-2014 at 09:18 AM.. Reason: Added CODE tags
This User Gave Thanks to kpkanani For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #352
Difficulty: Easy
Unix was created 25 years before Linux.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to concatenate 2-columns by 2 -columns for a text file?

Hello, I want to concatenate 2-columns by 2-columns separated by colon. How can I do so? For example, I have a text file containing 6 columns separated by tab. I want to concatenate column 1 and 2; column 3 and 4; column 5 and 6, respectively, and put a colon in between. input file: 1 0 0 1... (10 Replies)
Discussion started by: huiyee1
10 Replies

2. Shell Programming and Scripting

Grouping multiple columns and concatenate

I have a CSV file that goes like this: Name,Group,Email Max,Group1,max@.com Dan,Group2,dan@.com Max,Group3,max@.com Max,Group4,max@.com Dan,Group5,dan@.com Jim,Group6,jim@.comBasically my desired output should be: Name,Group,Email Max,Group1|Group3|Group4,max@.com... (6 Replies)
Discussion started by: jeffreybsu
6 Replies

3. Shell Programming and Scripting

Deleting all the fields(columns) from a .csv file if all rows in that columns are blanks

Hi Friends, I have come across some files where some of the columns don not have data. Key, Data1,Data2,Data3,Data4,Data5 A,5,6,,10,, A,3,4,,3,, B,1,,4,5,, B,2,,3,4,, If we see the above data on Data5 column do not have any row got filled. So remove only that column(Here Data5) and... (4 Replies)
Discussion started by: ks_reddy
4 Replies

4. UNIX for Dummies Questions & Answers

Concatenate two columns and separate by - (minus)

hi all could you please help me to concatenate two colomns and separate them by "-" the two colomns to concatenate are colomuns 1 and 3 of a very bif file clomn 1 is chr, 2 is snp and 3 is bp the new colomn is chr_B input file : 1 rs1111 10583 1 rs1891 10611 1 rs1807 ... (13 Replies)
Discussion started by: biopsy
13 Replies

5. Shell Programming and Scripting

Concatenate columns from multiple files

Hi all, I want the 2nd column of every file in the directory in a single file with the file name as column header. $cat file1.txt a b c d e f $cat file2.txt f g h g h j $cat file3.txt a b d f g h (2 Replies)
Discussion started by: newbie83
2 Replies

6. Shell Programming and Scripting

Concatenate strings retrieved from a file and write it into another file

Hi, I have a file files.txt containing data as below: abc;xyz uvw;pqr 123;456 I want to develop strings like below using the above data and write them into another file: www/xxx/abc/yyy/xyz www/xxx/uvw/yyy/pqr www/xxx/123/yyy/456 All this needs to be done through .sh file. ... (4 Replies)
Discussion started by: archana.n
4 Replies

7. Shell Programming and Scripting

Concatenate columns from files

Hi, I have a file1.txt like this: and a file2.txt like this: I wat only append file2.txt to file1.txt and to have something like this: How could i do ? (2 Replies)
Discussion started by: AdminLew
2 Replies

8. Shell Programming and Scripting

concatenate 'n' number of columns in a file

i have a file which may have 'n' number of columns 1 222 fafda 32 afdaf 4343 4343 234 43fdaf 4343 fdd fdfd fdfd fdd fdfd fdfd fdfd fdfd fdfd fdd fdfd fdfd need to concatenate the columns with... (3 Replies)
Discussion started by: mlpathir
3 Replies

9. Shell Programming and Scripting

Insert file names when concatenate files into a file

Hi I found the following line would concatenate all test_01 test_02 test_03 files into "bigfile". cat test_* >> bigfile But, what I'm looking for a way to insert each file names in order when concatenated in "bigfile". Thank you samky2005 (2 Replies)
Discussion started by: samky2005
2 Replies

10. UNIX for Dummies Questions & Answers

file Concatenate

Hi All, I have a question about file concatenate on unix. I have two file 1 of them like aaa,bbb,ccc,ddd other one is eee,fff,ggg,hhh I want to concatenate those file like this position aaa,bbb,ccc,ddd,eee,fff,ggg,hhh how can I do this ?? thanks. Alice (3 Replies)
Discussion started by: alisev
3 Replies

Featured Tech Videos