在Linux中将文本文件合并成一个文件
Contents
1. 概述
Linux 为我们提供了对文件执行各种操作的命令。其中一项活动是文件的串联或合并。
在本快速教程中,我们将了解如何将文件合并成单个文件。
2. 引入cat命令
要连接文件,我们将使用cat(连接的缩写)命令。
假设我们有两个文本文件,A.txt和B.txt。 A.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