首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在csv文件的字段1、2上打印重复行

仅在csv文件的字段1、2上打印重复行
EN

Unix & Linux用户
提问于 2017-08-22 08:01:54
回答 1查看 3.6K关注 0票数 2

通过下面的命令,我们可以从文件中打印重复行

代码语言:javascript
复制
uniq -d string file.txt

但我们怎样才能在csv文件上做到呢?

我们只需要在csv文件的字段1,2上打印重复行--不包括字段3

FS - ",“

例如:

代码语言:javascript
复制
 spark2-thrift-sparkconf,spark.history.fs.logDirectory,{{spark_history_dir}}
 spark2-thrift-sparkconf,spark.history.fs.logDirectory,true
 spark2-thrift-sparkconf,spark.history.Log.logDirectory,true
 spark2-thrift-sparkconf,spark.history.DF.logDirectory,true

预期成果:

代码语言:javascript
复制
 spark2-thrift-sparkconf,spark.history.fs.logDirectory,{{spark_history_dir}}
 spark2-thrift-sparkconf,spark.history.fs.logDirectory,true

第二:

如何从csv文件中排除重复行(我的意思是仅删除字段1、2上的重复行)

预期产出:

代码语言:javascript
复制
 spark2-thrift-sparkconf,spark.history.Log.logDirectory,true
 spark2-thrift-sparkconf,spark.history.DF.logDirectory,true
EN

回答 1

Unix & Linux用户

发布于 2017-08-22 08:11:22

cut前两个字段,按照您的建议对它们进行uniq,并使用结果对原始文件中的行进行grep

代码语言:javascript
复制
cut -d, -f1,2 file.cvs |uniq -d|grep -Ff - file.cvs

如果尚未对文件进行排序,则必须在uniq之前对其进行排序:

代码语言:javascript
复制
cut -d, -f1,2 file.cvs |sort|uniq -d|grep -Ff - file.cvs

对于第二个问题(倒排结果),使用选项-u而不是-d

代码语言:javascript
复制
cut -d, -f1,2 file.cvs |sort|uniq -u|grep -Ff - file.cvs
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/387590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档