在Linux中追加到内容的末尾
在本教程中,我们学习了在 Linux 中将⽂本附加到⽂件末尾的不同⽅法。您可以在 Linux 中使⽤多种⽅法来实现此⽬的,但最简单的⼀种是将命令输出重定向到所需的⽂件名。使⽤ >> 字符,您可以将任何命令的结果输出到⽂本⽂件。
其他可以实现这⼀点的⽅法是使⽤ tee、awk 和 sed 等 Linux ⼯具。
将命令或数据的输出重定向到⽂件末尾
每个基于 Unix 的操作系统都有⼀个“输出的默认位置”的概念。每个⼈都称其为“标准输出”或“stdout”,发⾳为标准输出。您的shell(可能是 bash 或 zsh)⼀直在监视该默认输出位置。当你的 shell 在那⾥看到新的输出时,它会在屏幕上打印出来,这样你就可以看到它。
我们可以使⽤ >> 运算符将该输出重定向到⽂件。
程序如下:
使⽤echo命令将⽂本附加到⽂件末尾:
echo 'sample text line' >>
将命令输出附加到⽂件末尾:
command >>
在⽂件末尾添加⾏
我们可以使⽤这个重定向字符 >> 添加⽂本⾏,或者我们可以将数据和命令输出写⼊⽂本⽂件。使⽤此⽅法,如果⽂件不存在,将创建该⽂件。
例如:
$ echo "sample line" >>
$
sample line
$ echo "sample line 2" >>
$
sample line
sample line 2
将命令数据输出结果添加到⽂件末尾
您还可以添加数据或运⾏命令并将输出附加到所需⽂件。在此⽰例中,我们将使⽤ date 将当前⽇期附加到⽂件中,uname 命令将打印出我们正在使⽤的 Linux 系统的内核版本,最后使⽤ls命令输出当前⽬录结构和⽂件列表。
您可以使⽤任何可以将其结果输出到终端的命令,这意味着 Linux 中⼏乎所有的命令⾏⼯具。
$ date >>
$
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
$ uname -r >>
$
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic
$ ls >>
$
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic
<
替代⽅法
让我们看看如何使⽤ tee、awk 和 sed Linux 实⽤程序进⾏附加。
使⽤ tee 命令⾏⼯具
Tee 命令读取标准输⼊并将其写⼊标准输出和⼀个或多个⽂件。该命令以管道中使⽤的 T 形分离器命名。它破坏了程序的输出,以便它可以显⽰和保存在⽂件中。
$ tee - <<< "appended line of text"
vagrant@ubuntu-trusty-64:~$
appended line of text
使⽤ awk 命令⾏⼯具
awk 是⼀个实⽤程序,它使程序员能够以语句的形式编写微⼩但有效的程序,这些语句定义要在⽂档的每⼀⾏中搜索的⽂本模式以及在到匹配项时要执⾏的操作线。awk 主要⽤于模式扫描和处理。
$ awk 'BEGIN{ printf "another text line appended" >> ""  }'
shell创建文件并写入内容vagrant@ubuntu-trusty-64:~$
another text line appended
使⽤ sed 命令⾏⼯具
Linux中的sed命令代表流编辑器,它可以对⽂件执⾏许多功能,如搜索、查和替换、插⼊或删除。通过使⽤sed,您甚⾄可以在不打开⽂件的情况下编辑⽂件,这是在⽂件中查和替换某些内容的更快⽅法。
$ sed -i '$a yet another text line'
vagrant@ubuntu-trusty-64:~$
yet another text line
将多⾏附加到⽂件
有⼏种⽅法可以⼀次将多⾏附加到⽂件中。
当然,您可以逐⾏添加:
$ echo "line 1" >>
$ echo "line 2" >>
下⼀个变体是在终端中输⼊新⾏:
echo "line 1
line 2
line 3" >>
另⼀种⽅法是打开⽂件并写⼊⾏,直到您键⼊ EOT:$ cat <<EOT >>
line 1
line 2
EOT

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。