更改

跳转至: 导航搜索

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

添加2,152字节, 2022年3月24日 (四) 20:37
恢复45.77.171.9讨论)的编辑至Linghuc的最后版本
在Linux合并文件可使用cat或者paste命令,本例中以合并a.txt和b.txt为例。
 
== 源文件 ==
 
1.首先输入“cd tmp”到文件目录(本例中为tmp)。
[[File:LinuxCombinFile1.png]]
3.输入“cat b.txt”输出b.txt文件内容。
[[File:LinuxCombinFile3.png]]
 
== 合并文件 ==
 
4.输入“cat a.txt b.txt > c.txt”合并b.txt文件内容到a.txt的下方并输出到c.txt。并输入“cat c.txt”输出c.txt文件内容。
注意:蓝色框内为原a.txt文件内容,黄色框内为原b.txt文件内容。
[[File:LinuxCombinFile4.png]]
5.输入 “cat “paste a.txt b.txt > d.txt”合并b.txt文件内容到a.txt的右方并输出到d.txt。并输入“cat d.txt”输出d.txt文件内容。
注意:蓝色框内为原a.txt文件内容,黄色框内为原b.txt文件内容。
[[File:LinuxCombinFile5.png]]
== 文件并集&交 集&补 集 == 注意:文件补集和交集等操作需保证文件内容无重复行。 13.输入“cat a.txt b.txt | sort | uniq > h.txt”命令将a.txt和b.txt文件合并输出为h.txt(如果两个源文件有重复行则只保留一行),并输入“cat h.txt”查看h.txt文件内容。[[File:LinuxCombinFile11.png]] 14.输入“cat a.txt b.txt | sort | uniq -c > h1.txt”命令将a.txt和b.txt文件合并输出为h1.txt(-c 参数显示每行出现的次数),并输入“cat h1.txt”查看h.txt文件内容。[[File:LinuxCombinFile19.png]] 15.输入“cat a.txt b.txt | sort | uniq -d > i.txt”命令(-d参数表示仅显示重复行)将a.txt和b.txt的交集输出到i.txt,并输入“cat i.txt”查看文件内容。 注意:此处因b.txt有重复行,故输出文件内容不正确。[[File:LinuxCombinFile12.png]] 16.输入“sort b.txt | uniq > b1.txt”命令将b.txt删除重复行(重复行只保留一行)的结果输出为b1.txt文件,并输入“cat b1.txt”查看文件内容。[[File:LinuxCombinFile13.png]] 17.输入“cat a.txt b1.txt | sort | uniq -d > j.txt”命令(-d参数表示仅显示重复行)将a.txt和b1.txt的交集输出到j.txt,并输入“cat j.txt”查看文件内容。 注意:此处因b1.txt无重复行,故输出文件内容正确。[[File:LinuxCombinFile14.png]] 18.输入“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两行),故输出文件内容不正确[[File:LinuxCombinFile15.png]] 19.输入“cat a.txt b1.txt | sort | uniq -u > k1.txt”命令(-u参数表示仅显示文件中不重复行)将删除a.txt和b1.txt文件的交集(111和777两行),并将其他内容输出到k1.txt, 输入“cat k.txt”查看文件内容。 注意:因b1.txt文件内容无重复行,故输出文件内容正确[[File:LinuxCombinFile18.png]]
1,138
个编辑

导航菜单