使用sed删除文件的所有内容

Smi*_*yne 2 unix sed empty-list

我想使用sed命令清空文件.我搜索了很多论坛和教程.没有可删除文件的所有内容.如何使用sed命令删除文件的所有内容.

fed*_*qui 8

这看起来像一个奇怪的请求.无论如何,这是一种方式:

sed -i '/^/d' file
Run Code Online (Sandbox Code Playgroud)
  • sed -i 进行就地替换.
  • /^/匹配行,在这种情况下所有这些都是因为^"行首".
  • /d 删除它们.

或者更短(感谢glenn jackman一如既往):

sed -i d file
Run Code Online (Sandbox Code Playgroud)

  • 您无需提供地址.要删除每一行:`sed d file` (2认同)
  • `sed`不是最好的方式,@ Smithithway.相反,你可以做`echo> file`. (2认同)

gle*_*man 5

您不需要为此使用 sed。清空文件:

> filename
Run Code Online (Sandbox Code Playgroud)

如果没有命令,该重定向将截断文件。

  • 我知道你正在学习和试验。但是,如果要使用这些 shell 命令,请编写一个 shell 脚本。如果您使用 C 进行编码,请学习您需要的 C 函数。生成一个 shell 并调用本身在 C 中实现的命令行命令是最低效的。它都是开源的,所以要了解它们是如何实现的。 (3认同)