从 csv 文件中的列获取唯一值

kaw*_*her 3 csv shell awk uniq

我有以下输入:

no,zadrar,MENTOR,rossana@xt.com,AGRATE
no,mittalsu,MENTOR,rossana@xt.com,GREATER NOIDA
no,abousamr,CADENCE,selim@xt.com,CROLLES
no,lokinsks,MENTOR,sergey@xt.com,CROLLES
no,billys,MENTOR,billy@xt.com,CROLLES
no,basiles1,CADENCE,stephane@xt.com,CASTELLETTO
no,cesaris1,CADENCE,stephane@xt.com,CROLLES
Run Code Online (Sandbox Code Playgroud)

我只想获取第 4 列唯一的行:

no,abousamr,CADENCE,selim@xt.com,CROLLES
no,lokinsks,MENTOR,sergey@xt.com,CROLLES
no,billys,MENTOR,billy@xt.com,CROLLES
Run Code Online (Sandbox Code Playgroud)

我尝试过:

awk -F"," '{print $4}' $vendor.csv | sort | uniq -u
Run Code Online (Sandbox Code Playgroud)

但我得到:

    selim@xt.com
    sergey@xt.com
    billy@xt.com
Run Code Online (Sandbox Code Playgroud)

elc*_*ano 6

您可以简单地使用命令提供的选项sort

sort -u -t, -k4,4 file.csv
Run Code Online (Sandbox Code Playgroud)

正如您在页面中看到的man,选项-u代表“唯一”,-t表示字段分隔符,并-k允许您选择位置(键)。