首页 > 解决方案 > 删除开头带括号的行

问题描述

我需要删除这样开头的一行:

[success] Total ....

我尝试了以下 sed 命令,但没有成功

sed '/\[/d' filename > newFile

但是当我 greped 新文件时,该行仍然存在!摆脱它的正确命令是什么

标签: sed

解决方案


如果您希望删除以模式开头的行,那么您应该^在模式的开头使用锚符号 ( ):

sed -E '/^\[/d' filename > newFile

为了容纳由于缩进而常见的模式开头的空格,您应该这样做

sed -E '/^[[:blank:]]+\[/d' filename > newFile

GNU sed有一个通过选项实现的就地编辑选项-i,所以上面可以替换为

sed -Ei '/^[[:blank:]]+\[/d' filename

似乎sed对文件大小没有限制 ,但对于大文件来说通常很慢。


推荐阅读