sed - 删除开头带括号的行
问题描述
我需要删除这样开头的一行:
[success] Total ....
我尝试了以下 sed 命令,但没有成功
sed '/\[/d' filename > newFile
但是当我 greped 新文件时,该行仍然存在!摆脱它的正确命令是什么
解决方案
如果您希望删除以模式开头的行,那么您应该^
在模式的开头使用锚符号 ( ):
sed -E '/^\[/d' filename > newFile
为了容纳由于缩进而常见的模式开头的空格,您应该这样做
sed -E '/^[[:blank:]]+\[/d' filename > newFile
GNU sed
有一个通过选项实现的就地编辑选项-i
,所以上面可以替换为
sed -Ei '/^[[:blank:]]+\[/d' filename
似乎sed
对文件大小没有限制 ,但对于大文件来说通常很慢。
推荐阅读
- vbscript - Word.Application 权限被拒绝错误
- android - 无法在 Fresco 中设置进度条
- android - 从 android webview 登录 facebook 时的安全问题
- python - 将dict附加到json python烧瓶
- php - 每小时获取今天注册的用户
- css - 缩小视口时如何使图像居中?
- android - 按内部列表值过滤子项
- javascript - 使用 javascript 预填充 onclick 内容
- json - 从 d3 中的局部变量读取节点数据
- json - @RestController 自定义 ResponseEntity - 杰克逊