如何在Linux下合并多个文件并删除重复行

在Linux合并文件可使用cat或者paste命令,本例中以合并a.txt和b.txt为例。

源文件

  • 01

    首先输入“cd tmp”到文件目录(本例中为tmp)。

  • 02

    输入“cat a.txt”输出a.txt文件内容。

  • 03

    输入“cat b.txt”输出b.txt文件内容。

合并文件

  • 01

    输入“cat a.txt b.txt > c.txt”合并b.txt文件内容到a.txt的下方并输出到c.txt。并输入“cat c.txt”输出c.txt文件内容。   注意:蓝色框内为原a.txt文件内容,黄色框内为原b.txt文件内容。

  • 02

    输入“paste a.txt b.txt > d.txt”合并b.txt文件内容到a.txt的右方并输出到d.txt。并输入“cat d.txt”输出d.txt文件内容。   注意:蓝色框内为原a.txt文件内容,黄色框内为原b.txt文件内容。

  • 03

    输入“cat a.txt b.txt | sort | uniq | > e.txt”合并a.txt和b.txt文件内容并删除重复行,将结果输出到e.txt。并输入“cat e.txt”输出e.txt文件内容。   注意e.txt与上图c.txt文件的区别。

删除重复行并显示

  • 01

    输入“cp b.txt f.txt”命令复制b.txt,新文件名为f.txt,输入“cat f.txt”命令显示文件内容。

  • 02

    输入“sort f.txt | uniq”并按回车键确定显示删除重复行(重复多行只显示一行)的结果。

  • 03

    sort命令仅对显示结果进行删除重复行,并不修改文件,可通过输入“cat f.txt”命令查看文件内容,结果与原文件相同。

  • 04

    输入“cp b.txt g.txt”命令复制b.txt,新文件名为g.txt,输入“cat g.txt”命令显示文件内容。

  • 05

    输入“sort g.txt | uniq -u ”并按回车键确定显示删除重复行(不显示重复行)的结果。

  • 06

    sort命令仅对显示结果进行删除重复行,并不修改文件,可通过输入“cat g.txt”命令查看文件内容,结果与原文件相同。

文件并集&交集&补集

  • 01

    输入“cat a.txt b.txt | sort | uniq > h.txt”命令将a.txt和b.txt文件合并输出为h.txt(如果两个源文件有重复行则只保留一行),并输入“cat h.txt”查看h.txt文件内容。

  • 02

    输入“cat a.txt b.txt | sort | uniq -c > h1.txt”命令将a.txt和b.txt文件合并输出为h1.txt(-c 参数显示每行出现的次数),并输入“cat h1.txt”查看h.txt文件内容。

  • 03

    输入“cat a.txt b.txt | sort | uniq -d > i.txt”命令(-d参数表示仅显示重复行)将a.txt和b.txt的交集输出到i.txt,并输入“cat i.txt”查看文件内容。     注意:此处因b.txt有重复行,故输出文件内容不正确。

  • 04

    输入“sort b.txt | uniq > b1.txt”命令将b.txt删除重复行(重复行只保留一行)的结果输出为b1.txt文件,并输入“cat b1.txt”查看文件内容。

  • 05

    输入“cat a.txt b1.txt | sort | uniq -d > j.txt”命令(-d参数表示仅显示重复行)将a.txt和b1.txt的交集输出到j.txt,并输入“cat j.txt”查看文件内容。     注意:此处因b1.txt无重复行,故输出文件内容正确。

  • 06

    输入“cat a.txt b.txt | sort | uniq -u > k.txt”命令(-u参数表示仅显示文件中不重复行)将删除a.txt和b.txt文件的交集(111和777两行),并将其他内容输出到k.txt, 输入“cat k.txt”查看文件内容。 注意:因b.txt文件内容有重复行(aaa和bbb两行),故输出文件内容不正确

  • 07

    输入“cat a.txt b1.txt | sort | uniq -u > k1.txt”命令(-u参数表示仅显示文件中不重复行)将删除a.txt和b1.txt文件的交集(111和777两行),并将其他内容输出到k1.txt, 输入“cat k.txt”查看文件内容。    注意:因b1.txt文件内容无重复行,故输出文件内容正确

(0)

相关推荐

  • 如何在linux下编辑和修改文件:

    我们在linux下有很多的地方,需要使用和修改文件,这里我们介绍的是,linux的自带的工具vi文本编辑工具.这个是很强大的一个工具. 我们在linux下主要使用的是这个工具.这里小编,就来介绍一下, ...

  • 如何在Linux下设置访问控制列表(ACL)来控制用户的权限

    Linux下的访问控制列表(ACL)主要用来控制用户的权限,可以做到不同用户对同一文件有不同的权限,那么具体要如何操作呢?下面小编就教你如何在Linux下设置访问控制列表(ACL)来控制用户的权限。 ...

  • Linux删除重复行的代码

    Linux删除重复行的代码 文本处理时,经常要删除重复行,下面是三种方法 第一,用sort+uniq,注意,单纯uniq是不行的. ? 1 sort -n test.txt | uniq 第二,用so ...

  • Linux如何删除重复行的代码?

    文本处理时,经常要删除重复行,方法如下: 方法一: 用sort+uniq,注意,单纯uniq是不行的. 1 sort -n test.txt | uniq 方法二: 用sort+awk命令,注意,单纯 ...

  • 如何在Linux下自学各类需要的知识

    安装好了Unix/Linux类操作系统,却不知道拿它做点什么、也不知道它能做些什么……这是大多数初这朋友的疑惑。 我认为首先要做的是学会如何在Unix/Linux下获得知识,掌握学习方法。如何真有一天 ...

  • 如何在Linux下搭建apache服务器

    这里为大家详细的介绍如何在linux环境下搭建apache服务器,Linux环境是在虚拟机下装redhat系统.apache包为2.2.11 操作方法 01 删除Linux系统本身自带有apache服 ...

  • linux下vi命令修改文件及保存等使用方法整理

    vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起 ...

  • 如何在Linux下安装Sendmail服务器软件的方法

    如何在Linux下安装Sendmail服务器软件的方法

  • Linux下快速批量修改文件夹下的图片名称的方法

    我们都知道,要修改文件夹下的图片名称很容易,但是要批量修改就比较浪费时间了,那么有什么方法能够快速批量修改图片名称呢?下面小编就给大家介绍下Linux下快速批量修改图片名称的方法。 如10.11一批这 ...