手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

在Linux Bash下将文本追加(附加)到文件中的方法

[日期:2014-12-06] 来源:Linux社区  作者:Linux [字体: ]

本文介绍在Linux Bash下将文本追加(附加)到文件中的方法:使用重定向操作符(>>)附加到文件和使用tee命令附加到文件。其实在Bash中有多种方法可以将文本追加到文件中,本文介绍常用的方法。要将文本追加到文件,您需要具有文件写入权限,否则,您将收到一个权限被拒绝的错误。

使用重定向操作符(>>)附加到文件

重定向允许您捕获命令的输出,并将其作为输入发送到另一个命令或文件,>>重定向运算符会将输出附加到给定文件。

您可以使用命令将文本打印到标准输出并将其重定向到文件,其中echo和printf是最常用的命令。

要将文本追加到文件,请在重定向运算符后指定文件名:

$ echo "this is a new line" >> file.txt

参考:echo命令_Linux echo命令使用详解:输出指定的字符串或者变量。 http://www.linuxidc.com/Linux/2014-12/110708.htm

当与-e选项一起使用时,echo命令将解释反斜杠转义的字符,例如换行符\n:

$ echo -e "this is a new line \nthis is another new line" >> file.txt

如果要产生更复杂的输出,请使用printf命令,该命令可用于指定输出的格式:

$ printf "Hello, I'm %s.\n" $USER >> file.txt

将文本追加到文件的另一种方法是使用Here文档(Heredoc),这是一种重定向类型,它允许您将多行输入传递给命令。

例如,您可以将内容传递给cat命令并将其附加到文件中:

cat « EOF » file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF

您可以将任何命令的输出附加到文件中,以下是date命令的示例:

$ date +"Year: %Y, Month: %m, Day: %d" >> file.txt

使用重定向附加到文件时,请注意不要使用>运算符覆盖重要的现有文件。

使用tee命令附加到文件

tee是Linux中的命令行实用程序,可从标准输入读取并同时写入标准输出和一个或多个文件。参考:tee命令_Linux tee命令使用详解:把数据重定向到给定文件和屏幕上。http://www.linuxidc.com/Linux/2014-12/110594.htm

缺省情况下,tee命令将覆盖指定的文件,要将输出附加到文件,请使用带有-a(--append)选项的tee:

$ echo "this is a new line"  | tee -a file.txt

如果您不希望tee写入标准输出,请将其重定向到/dev/null:

$ echo "this is a new line"  | tee -a file.txt >/dev/null

使用tee命令而不是>>运算符的优点是tee允许您一次将文本追加到多个文件,并结合sudo写入其他用户拥有的文件。

要将文本追加到您没有写权限的文件中,请在tee之前添加sudo,如下所示:

$ echo "this is a new line" | sudo tee -a file.txt

tee接收echo命令的输出,提升sudo权限,然后写入文件。

要将文本附加到多个文件中,请将文件指定为tee命令的参数:

$ echo "this is a new line"  | tee -a file1.txt file2.txt file3.txt

总结

在Linux操作系统中,要将文本追加到文件中,建议使用>>重定向运算符或tee命令,这样处理起来更便捷。

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-12/110255.htm

linux
相关资讯       Linux Bash 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款