Contents

在Linux中将文本文件合并成一个文件

1. 概述

Linux 为我们提供了对文件执行各种操作的命令。其中一项活动是文件的串联或合并。

在本快速教程中,我们将了解如何将文件合并成单个文件

2. 引入cat命令

要连接文件,我们将使用cat(连接的缩写)命令

假设我们有两个文本文件,A.txtB.txtA.txt

Content from file A.

B.txt

Content from file B.

现在,让我们将这些文件合并到文件C.txt 中

cat A.txt B.txt > C.txt

** cat命令连接文件并将结果打印到标准输出。*因此,为了将连接的输出写入文件,我们使用了输出重定向符号“ >”*。这会将连接的输出发送到指定的文件。

上面的脚本将使用连接的内容创建文件C.txt

Content from file A.
Content from file B.

请注意,如果文件C.txt已经存在,它将被简单地覆盖

有时,我们可能希望将内容附加到输出文件而不是覆盖它。我们可以通过使用双输出重定向符号*»*来做到这一点:

cat A.txt B.txt >> C.txt

上面的示例连接了两个文件。但是,如果我们想连接两个以上,我们一个接一个地指定所有这些文件:

cat A.txt B.txt C.txt D.txt E.txt > F.txt

这将按照指定的顺序连接所有文件。

3. 使用通配符连接多个文件

如果要连接的文件数量很大,输入每个文件的名称很麻烦。因此,我们可以使用通配符来指定文件,而不是指定要连接的每个文件。

例如,要连接当前目录中的所有文件,我们可以使用星号(*)通配符:

cat *.txt > C.txt

如果输出文件已经存在,我们在使用通配符时必须小心——如果指定的通配符包含输出文件,我们会得到一个错误:

cat: C.txt: input file is output file

值得注意的是,当使用通配符时,文件的顺序是不可预测的。因此,如果连接文件的顺序很重要,我们将不得不使用我们在上一节中看到的方法。

更进一步,我们还可以使用管道将输入文件的内容提供给cat命令。例如,我们可以echo当前目录中所有文件的内容并将其输出提供给cat

echo *.txt | xargs cat > D.txt