在 Linux 命令行中连接文件
想要在 Linux 命令行中连接两个文件?以下是如何使用 cat 命令执行此操作。
简单来说,连接就是连接两个字符串。
例如,有两个字符串:snow
和ball
。因此,当您连接它们时,它将形成一个字符串snowball
。
在使用 Linux 时,您经常会发现自己处于必须连接两个或多个文件的情况。
因此,在本指南中,我将分享多个连接文件的示例。
如何在 Linux 中连接文件
当您考虑 Linux 中文本文件的串联时,cat 命令统治着整个类别。
为了进行演示,我将使用两个名为 TextFile1
和 TextFile2
的文本文件,它们的文件包含如下:
sagar@LHB:~$ cat TextFile1
File contents of TextFile1
sagar@LHB:~$ cat TextFile2
File contents of TextFile2
现在,让我们跳到示例部分。
在标准输出中连接多个文件
这是大多数用户使用的最简单的串联,您可以在标准输出中组合多个文件的输出:
cat TextFile1 TextFile2
连接文件内容并将其保存到新文件
上面,我解释了如何连接多个文件,但它不会保存任何更改。
因此,如果您想连接文件并将输出保存到另一个文件,您可以将输出数据流重定向到一个新文件。
例如,在这里,我连接了 TextFile1
和 TextFile2
的文件内容,并将输出保存到名为 Output_File
的新文件中:
cat TextFile1 TextFile2 > Output_File
但它会覆盖 Ouput_File
的文件内容(如果有),并且您可能会丢失敏感数据。
要连接输出并将其保存到另一个文件而不覆盖,请使用 >>
而不是 >
:
cat TextFile1 TextFile2 >> Output_File
正如你所看到的,两个文件的污染被保存在Output_File
的内容下面。
连接时从标准输入添加附加数据
您并不总是只想连接两个不同文件的文件内容,您可能还想向其中添加其他数据。
假设我想连接两个文件 TextFile1
和 TextFile2
,但我想添加一些附加数据,在这种情况下,使用标准输入是最佳选择。
可以通过 -
标志调用。
例如,我想在 TextFile1
的内容上方添加数据,因此我将使用以下内容:
cat - TextFile1 >> TextFile2
它将作为普通的 cat 命令执行,您可以在其中添加简单的文本。
添加完文本后,保存文件并退出使用 Ctrl + D
。
为了供您参考,我添加了以下行:
Text from the standard output that should be placed above the file contents of TextFile1
正如您所看到的,在这里,我将两个文件与来自标准输入的附加数据连接起来。
同样,如果你想在两个文件污染后添加额外的数据而不是上面的,可以参考以下内容:
cat TextFile1 - >> TextFile2
在这里,我在标准输入中输入了以下内容:
Content from standard input that will be placed after contents of two files
将命令输出连接到文件
如果想使用cat命令将命令的输出连接到特定文件,可以参考给定的命令语法:
Command | cat > file
例如,在这里,我将当前使用的内核版本连接到名为 Kernels
的文件:
uname -r | cat > Kernels
但您是否知道您还可以将输出、错误和标准输入重定向到文件?
这非常简单,并且在您只想连接错误的情况下非常有用:
充分利用 cat 命令
虽然大多数用户使用 cat 命令来创建和读取文件,但是如果我告诉您您可以用它做更多事情呢?
在阅读以下指南之前,我什至都没有意识到它的力量:
我希望本指南对您有所帮助。
如果您有任何疑问,请随时在评论中提问。