linux - 删除重复项并首先保留在 unix 中的 csv 文件中

标签 linux csv unix

您好,我有一个 csv 文件,其内容如下

NAME,AGE
abc,12
def,13
NAME,AGE  ##here duplicates :though these are column names
sdd,34
krgj,656

我尝试了一个排序命令来做到这一点:

sort -u file.csv -o file.csv

但是所有重复的行都被删除了(保留最后一行),但我需要保留第一行,这样我的列/标题就可以安全了。

请在这方面提供帮助。

最佳答案

这个任务的惯用 awk 程序是:

awk '!seen[$0]++' file

对于文件中的每一行 ($0),我们增加看到该行的次数。由于我们使用的是后增量运算符, 第一次遇到一行时,seen[$0]++ 的值为零。对于该行的所有其他实例,该值不为零。所以我们否定这个值以获得第一次看到的真实值。默认操作是打印该行。

关于linux - 删除重复项并首先保留在 unix 中的 csv 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708370/

相关文章:

unix - Darwin OS已经打折了,但是原来的源代码还能找到吗?

mysql - 将 CSV 文件导入 MySQL 而不使用 load data infile

python - 将表格分隔符更改为另一个字符

linux - 根据随机化前的先前文件顺序重新排序行

python - 无法通过 pip 安装 Pillow

mysql - 使用 RegEx 查找包含超过 N 个分号的行

linux - 根据匹配行合并两个 csv 文件并在 linux 中添加新列

unix - 使用 SSH 在远程机器上发出多个命令的替代方法?

linux - 在 bash 中移动文件时遇到问题

linux - 长时间运行的java进程