Linux中的cat命令不仅有助于创建文本文件,显示其内容,还有助于合并来自两个或多个文本文件的文本。 然后可以将合并的文本保存到另一个文本文件中。 在本教程中,您将学习如何使用cat命令将两个或多个文件中的文本合并为一个文件。 这将帮助您从普通初学者获得Ubuntu上的高级用户状态。 我们在Ubuntu 18.04 LTS系统上运行了本教程中提到的命令。
我们在本文中提供一些示例,它们将帮助您在以下四种方案中理解cat命令的正确用法:
- 将多个文本文件中的文本合并到单个文本文件中。
- 合并多个文件中的文本,并按字母顺序将输出保存到另一个文件。
- 将文本从一个文本文件追加到另一个文本文件
- 将文本从Ubuntu终端直接附加到文本文件。
注意:在更改内容之前备份重要文件是一种很好的做法。
示例1:将三个文件中的文本合并到另一个文本文件中
我们在系统上创建了三个示例文本文件,名称为558idc1.txt,558idc2.txt和558idc3.txt。 所有这些文件都包含一行文本。 以下使用CAT命令将在单个输出中显示所有这些文件中的文本。
通过按CTRl + Alt + T或通过Dash打开Ubuntu终端,然后输入以下命令:
$ cat [file1.txt] [file2.txt] [file3.txt]
实例:
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc1.txt 558idc2.txt 558idc3.txt
558idc1 www.558idc.com
558idc2 558idc.com
558idc3 m.558idc.com
在下图中,您可以看到我的三个文本文件的输出如何作为单个合并输出打印:
使用cat命令合并三个文本文件
Linux允许您使用以下语法将命令的输出打印到文件:
$ [command] > [filename]
让我们使用此命令和cat命令将文本从三个不同的文本文件保存到新的文本文件:
$ cat [file1.txt] [file2.txt] [file3.txt] > [file4.txt]
实例:
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc1.txt 558idc2.txt 558idc3.txt > 558idc4.txt
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc4.txt
558idc1 www.558idc.com
558idc2 558idc.com
558idc3 m.558idc.com
在下图中,我将合并后的文本从我的三个文件保存到新文件558idc4.txt; 然后我将新文件的内容打印到屏幕上供您查看:
将3个文件合并到第四个文件中
请记住,如果系统中已存在目标文本文件,则其内容将被覆盖。
示例2:合并三个文件中的文本,并按字母顺序将输出保存到另一个文件
假设你有三个文本文件; 每个都包含一些文字。 您希望合并所有三个文本并将输出保存到第四个文件,但按字母顺序排列。 这是你将如何做到这一点:
$ cat [file1.txt] [file2.txt] [file3.txt] | sort > [file4.txt]
实例:
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc1.txt
c-558idc1 www.558idc.com
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc2.txt
b-558idc2 558idc.com
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc3.txt
a-558idc3 m.558idc.com
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc1.txt 558idc2.txt 558idc3.txt > 558idc4.txt
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc4.txt
在下图中,您可以查看每个文本文件中的文本。 如果我只是将文本组合到一个新文件558idc4.txt,输出将如下所示:
c-558idc1 www.558idc.com
b-558idc2 558idc.com
a-558idc3 m.558idc.com
合并文本文件
但是,我希望按字母顺序排序的输出打印到我的文本文件中,因此我将使用以下命令:
$ cat 558idc1.txt 558idc2.txt 558idc3.txt | sort > 558idc5.txt
实例:
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc1.txt 558idc2.txt 558idc3.txt | sort > 558idc5.txt
558idc@558idc:~/自由互联/www.558idc.com$ cat 558idc5.txt
输出:
a-558idc3 m.558idc.com
b-558idc2 558idc.com
c-558idc1 www.558idc.com
您可以看到我新创建的558idc5.txt如何包含来自我的三个源文件的合并和排序文本。
示例3:将文本从一个文本文件附加到另一个文本文件
cat命令还可用于将文本从源文件追加到目标文件,而不会弄乱后者的内容。
这是一个示例目标文件:
示例文本文件
这是一个示例源文件:
示例源文件
附加文本的语法:
$ [sourcefile.txt] >> [destinationfile.txt]
实例:
cat 558idc5.txt >> 558idc4.txt
以下是我将源文件中的文本附加到其后的目标文件的样子:
将文本附加到文件
示例4:将文本从终端直接附加到文件
如果要从命令行附加一些文本,在现有文本文件的末尾,可以使用以下语法:
$ cat >> [558idc.txt]
实例:
558idc@558idc:~/自由互联/www.558idc.com$ cat >> 558idc4.txt
输入此命令后,将出现一个光标,供您输入要添加到指定文件的文本。 输入文本并按Ctrl + D. 您输入的文本将附加在文件末尾,而不会干扰其已存在的内容。
将文本从终端直接附加到文件
您可以在下图中看到此文本已添加到文件中:
总结
我们希望本文中描述的详细示例以及各种情况下cat命令的语法将有助于将多个文件的内容合并为一个文件。 此外,您不仅可以从一个文件到另一个文件,还可以直接从Ubuntu终端中对文本进行排序和附加。