簡體   English   中英

在bash腳本linux中的不同列中刪除相同值的重復項

[英]Delete repetitions of same values in different columns in bash script linux

我有一個這樣的文件:

A2M TIAM1

AARSD1 NLRP12

ABCA12 ABCA1

ABCA12 NR1H2

ABCA1 ABCA12

ABCA13 APOA2

ABCA13 CLK1

NLRP12 AARSD1

ABCA13 HAGH

ABCC10 ATP2B2

我想擺脫重復的值col2 col1。 例如:

ABCA1 ABCA12

...和:

NLRP12 AARSD1

...在這種情況下。

Bash腳本中最好的方法是什么?

這是使用awk

awk '!seen[$1]++ && !seen[$2]++' your-file

根據您的輸入,這將僅打印在col1和col2中找到的唯一值,這將是輸出:

A2M TIAM1
AARSD1 NLRP12
ABCA12 ABCA1
ABCA13 APOA2
ABCC10 ATP2B2

要按不同對分組,請嘗試以下操作:

awk '!seen[$1 $2]++ && !seen[$2 $1]++' your-file

這將是輸出:

A2M TIAM1
AARSD1 NLRP12
ABCA12 ABCA1
ABCA12 NR1H2
ABCA13 APOA2
ABCA13 CLK1
ABCA13 HAGH
ABCC10 ATP2B2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM