Contents

如何将多个文件的内容附加到一个文件中

1.概述

在本教程中,我们将学习如何将多个文件的内容附加到一个文件中。演示的命令适用于任何符合 POSIX 的终端,包括bash

2. 只使用cat命令

cat 命令是concatenate的 缩写。使用cat以及shell重定向,我们可以附加作为参数传递给命令的文件的内容。让我们通过一个简单的例子来看看这是如何做到的。首先,让我们显示三个单独文件的内容:

$ cat file1.txt
Contents of file1
$ cat file2.txt
Contents of file2
$ cat file3.txt
Contents of file3

接下来,我们将这些文件“分类”到一个文件中

$ cat file1.txt file2.txt file3.txt > file.txt
$ cat file.txt 
Contents of file1
Contents of file2
Contents of file3

我们通过简单地在cat命令后指定文件名并将标准输出重定向到新文件来组合所有三个文件。

3. 结合使用catfind命令

我们还可以将find 命令与cat命令结合使用来产生类似的结果。这将使我们能够执行更可靠、更强大的文件搜索以连接成一个文件。首先,让我们列出当前目录的内容以及其中的子目录的内容:

$ ls
file1.txt file2.txt fileSubDirectory
$ ls fileSubDirectory
file3.txt

现在让我们构建我们的find命令,调用cat命令,然后将标准输出重定向到一个名为file.txt的文件中:

$ find . -type f -name 'file*.txt' -exec cat {} + >> file.txt
$ cat file.txt
Contents of file1
Contents of file2
Contents of file3

结果是一个包含所有三个文件内容的文件。使用find命令可以递归地捕获所有文本文件,包括在子目录中找到的文件。在这里,我们使用带有值f的*-type*选项 来仅查找文件(而不是目录)。

然后,我们使用*-name选项和文件名模式指定要搜索的文件。此外,我们**使用-exec选项对找到的文件调用cat*命令**。从那里,我们将输出重定向到一个文件中。

4. 与paste命令连接

我们还可以使用 带有-s*选项的paste 命令*以及 shell 重定向来产生相同的结果:

$ paste -s file1.txt file2.txt file3.txt > file.txt
$ cat file.txt
Contents of file1
Contents of file2
Contents of file3

-s选项是串行的缩写,允许我们一次打印一个文件,而不是默认的并行打印。