How to remove duplicated column in a text file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to remove duplicated column in a text file?
# 1  
Old 01-14-2015
How to remove duplicated column in a text file?

Dear all,

How can I remove duplicated column in a text file?

Input:
Code:
LG10_PM_map_19_LEnd	1000560	G	AA	AA	AA	AA	AA	GG
LG10_PM_map_19_LEnd	1005621	G	GG	GG	GG	AA	AA	GG
LG10_PM_map_19_LEnd	1011214	A	AA	AA	AA	AA	GG	GG
LG10_PM_map_19_LEnd	1011673	T	TT	TT	TT	TT	CC	CC
LG10_PM_map_19_LEnd	1088961	C	TT	TT	TT	TT	TT	TT
LG10_PM_map_19_LEnd	1089024	G	AA	AA	AA	AA	AA	AA
LG10_PM_map_19_LEnd	1108301	C	TT	TT	TT	TT	TT	CC
LG10_PM_map_19_LEnd	11365128	G	AA					
LG10_PM_map_19_LEnd	11365170	T	CC					
LG10_PM_map_19_LEnd	11381744	A	GG	GG	GG	GG	GG	GG
LG10_PM_map_19_LEnd	11381772	T	TT	TT				
LG10_PM_map_19_LEnd	11385851	A	AA	AA	AA	AA	AA	AA
LG10_PM_map_19_LEnd	11386265	A	AA	AA	AA	AA	AA	AA
LG10_PM_map_19_LEnd	1138663	T	AA	TT	AA	AA	TT	TT

Output:
Code:
LG10_PM_map_19_LEnd	1000560	G	AA	GG
LG10_PM_map_19_LEnd	1005621	G	GG	AA
LG10_PM_map_19_LEnd	1011214	A	AA	GG
LG10_PM_map_19_LEnd	1011673	T	TT	CC
LG10_PM_map_19_LEnd	1088961	C	TT
LG10_PM_map_19_LEnd	1089024	G	AA
LG10_PM_map_19_LEnd	1108301	C	TT	CC
LG10_PM_map_19_LEnd	11365128	G	AA			
LG10_PM_map_19_LEnd	11365170	T	CC
LG10_PM_map_19_LEnd	11381744	A	GG
LG10_PM_map_19_LEnd	11381772	T	TT			
LG10_PM_map_19_LEnd	11385851	A	AA
LG10_PM_map_19_LEnd	11386265	A	AA
LG10_PM_map_19_LEnd	1138663	T	AA	TT

---------- Post updated at 02:27 AM ---------- Previous update was at 01:24 AM ----------

Hi all,

I figured out with awk:

Code:
awk '{ while(++i<=NF) printf (!a[$i]++) ? $i FS : ""; i=split("",a); print ""}' input > output

# 2  
Old 01-14-2015
More common practice for processing the fields is a for loop.
The following does not print a trailing space.
Code:
awk '{ for (i=1;i<=NF;i++) {if (!a[$i]++) printf d $i; d=FS}; d=""; split("",a); print "" }' input

A % in the input would confuse printf. More robust is
Code:
awk '{ for (i=1;i<=NF;i++) {if (!a[$i]++) printf "%s",d $i; d=FS}; d=""; split("",a); print "" }' input

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script to append suffix to column when column has duplicated values

Please help me to get required output for both scenario 1 and scenario 2 and need separate code for both scenario 1 and scenario 2 Scenario 1 i need to do below changes only when column1 is CR and column3 has duplicates rows/values. This inputfile can contain 100 of this duplicated rows of... (1 Reply)
Discussion started by: as7951
1 Replies

2. Shell Programming and Scripting

How to delete 'duplicated' column values and make a delimited file too?

Hi, I have the following output from an Oracle SQL statement and I want to remove duplicated column values. I know it is possible using Oracle analytical/statistical functions but unfortunately I don't know how to use any of those. So now, I've gone to PLAN B using awk/sed maybe or any... (5 Replies)
Discussion started by: newbie_01
5 Replies

3. Shell Programming and Scripting

How to remove duplicated lines?

Hi, if i have a file like this: Query=1 a a b c c c d Query=2 b b b c c e . . . (7 Replies)
Discussion started by: the_simpsons
7 Replies

4. UNIX for Dummies Questions & Answers

Sort csv file by duplicated column value

hello, I have a large file (about 1gb) that is in a file similar to the following: I want to make it so that I can put all the duplicates where column 3 (delimited by the commas) are shown on top. Meaning all people with the same age are listed at the top. The command I used was ... (3 Replies)
Discussion started by: jl487
3 Replies

5. Shell Programming and Scripting

Help with remove duplicated content

Input file: hcmv-US25-2-3p hsa-3160-5 hcmv-US33 hsa-47 hcmv-UL70-3p hsa-4508 hcmv-UL70-3p hsa-4486 hcms-US25 hsa-360-5 hcms-US25 hsa-4 hcms-US25 hsa-458 hcms-US25 hsa-44812 . . Desired Output file: hcmv-US25-2-3p hsa-3160-5 hcmv-US33 hsa-47 hcmv-UL70-3p hsa-4508 hsa-4486... (3 Replies)
Discussion started by: perl_beginner
3 Replies

6. UNIX for Dummies Questions & Answers

How to remove duplicated based on longest row & largest value in a column

Hii i have a file with data as shown below. Here i need to remove duplicates of the rows in such a way that it just checks for 2,3,4,5 column for duplicates.When deleting duplicates,retain largest row i.e with many columns with values should be selected.Then it must remove duplicates such that by... (11 Replies)
Discussion started by: reva
11 Replies

7. Shell Programming and Scripting

Remove part of a column in a text file

I have a text file with delimiter "|" and sometimes the zipcode is in "5th" column or "6th" column. I want to scan the file and remove the "-2323" from the zipcode which has zip+4 digits From blah|blah|foo|bar||blah|945523-232|USA blah|blah|foo|bar||blah|foo|94555-2323|USA To... (8 Replies)
Discussion started by: gubbu
8 Replies

8. Shell Programming and Scripting

remove duplicated columns

hi all, i have a file contain multicolumns, this file is sorted by col2 and col3. i want to remove the duplicated columns if the col2 and col3 are the same in another line. example fileA AA BB CC DD CC XX CC DD BB CC ZZ FF DD FF HH HH the output is AA BB CC DD BB CC ZZ FF... (6 Replies)
Discussion started by: kamel.seg
6 Replies

9. Shell Programming and Scripting

remove duplicated lines without sort

Hi Just wondering whether or not I can remove duplicated lines without sort For example, I use the command who, which shows users who are logging on. In some cases, it shows duplicated lines of users who are logging on more than one terminal. Normally, I would do who | cut -d" " -f1 |... (6 Replies)
Discussion started by: lalelle
6 Replies

10. Shell Programming and Scripting

remove duplicated xml record in a file under unix

Hi, If i have a file with xml format, i would like to remove duplicated records and save to a new file. Is it possible...to write script to do it? (8 Replies)
Discussion started by: happyv
8 Replies
Login or Register to Ask a Question