如何在 Linux 中合并多个文件?

让我们看看在 Linux 中合并多个文件的不同方式。 为此,我们将主要使用 cat 命令。 那么让我们开始吧!

在本教程的其余部分,我们将考虑三个文件。 让我们创建这些文件:

我们将使用 cat 命令来创建这些文件,但您也可以使用 touch/nano 命令来创建和编辑这些文件。

$ cat > [filename]  

一起显示内容

由于 cat 命令是 Concatenate 的缩写,因此它是将内容连接在一起的第一个命令。

$ cat file1.txt file2.txt file3.txt 
输出

注意内容出现的顺序就是文件在命令中出现的顺序。 我们可以更改命令中的顺序并进行验证。

具有不同顺序的文件不同顺序的文件

在 Linux 中合并多个文件并将它们存储在另一个文件中

要存储上一个示例中显示在屏幕上的内容,请使用重定向运算符。 (>)

$ cat file1.txt file2.txt file3.txt > merge.txt 
合并命令

输出已存储在文件中。 这里要注意的重要一点是,如果文件不存在, cat 命令将首先创建文件。 单个重定向运算符将覆盖文件而不是在末尾追加。 要在最后附加内容,请考虑下一个示例。

将内容附加到现有文件

要在 Linux 中将多个文件合并到另一个文件后附加内容,请使用双重重定向运算符。 (>>) 以及 cat 命令。

$ cat file1.txt file2.txt file3.txt >> merge.txt 
附加内容 1

此命令不是覆盖文件的内容,而是将内容附加到文件的末尾。 忽略如此精细的细节可能会导致不必要的错误。

Linux下使用sed命令合并多个文件

sed 命令,主要用于执行文本转换和操作,也可用于合并文件。

$ sed h file1.txt file2.txt file3.txt > merged.txt 
但合并文件

来自文件的内容临时存储在保持缓冲区中,通常用于存储模式。 然后将其写入指定的文件。

使用 For 循环自动化流程

For 循环可以省去显式提及文件名的工作。 这仅在文件名遵循模式时才有效。 与我们的例子一样,文件名遵循以下模式:file{1,2,3}.txt。 这可用于利用 for 循环。

$ for i in {1..3}; do cat "file$i.txt" >> out.txt; done 
循环合并

该代码只是利用了文件以类似模式命名的事实。 这应该会激励您考虑如何命名您的文件。

结论

在本教程中,我们介绍了在 Linux 中合并多个文件的一些方法。 合并过程不仅限于文本文件。 也可以合并其他文件,例如日志、系统报告。 如果要合并的文件数量过多,使用For循环合并文件可以节省很多精力。