如何使用终端合并多个文件中的不同行

如何使用终端合并多个文件中的不同行

我有两个文件(a.txt,b.txt)

文本文件

boy
girl
grade
test_1
test_2

文本文件

boy
girl
grade
test_3
test_4

现在我想合并这两个文件(c.txt)

文本文件

boy
girl
grade
test_1
test_2
test_3
test_4

朋友们请帮助我! 终端命令

答案1

cat a.txt b.txt | sort | uniq > c.txt

请注意,这可以适用于 2 个以上的文件,一般来说,以下内容将 file1、file2、.....、fileN 的内容连接成 outputFile :

cat file1 file2 file2 file4 .... fileN | sort | uniq > outputFile 

答案2

假设行的顺序不必保留(在这种特定情况下,行的顺序将被保留,但在其他情况下可能不会发生,因为文件将合并为一个文件,单个文件将被排序并且其非唯一行将被丢弃),使用sort

sort -u a.txt b.txt >c.txt
  • -u:仅打印唯一的行。
% cat a.txt
boy
girl
grade
test_1
test_2
% cat b.txt
boy
girl
grade
test_3
test_4
% sort -u a.txt b.txt >c.txt
% cat c.txt
boy
girl
grade
test_1
test_2
test_3
test_4

相关内容