ixt*_*lix 3 sed regular-expression

假装我正在处理这个文件。
第一个可见行的开头被遮住了,所以忽略它。43 是下一行的开始,该行将被删除。
下一行(以 44 开始并以句点结束)将被删除。
下一行(仅由 424 组成)也消失了。
下一行(由“11.King and Hero”组成)也没有了。
下一行保留。
cam*_*amh 10
我会用grep(1)这个:
grep -v '^[0-9]' filename
Run Code Online (Sandbox Code Playgroud)
^[0-9]匹配任何以数字开头-v的行,并排除匹配的行,而不是包括。您还可以使用字符类[:digit:]代替[0-9].
而不是-v你可以反转范围:
grep '^[^0-9]' filename
Run Code Online (Sandbox Code Playgroud)
这将匹配任何不以数字开头的行,但不会匹配空行。
对于grep,sed和awk,我的一般规则是,对于匹配和简单提取,使用grep,无状态重写,使用sed和有状态修改,使用awk. 这就是为什么我建议使用grep而不是sed您在问题中提出的问题(其他人已经回答了sed)。
sed -e '/^[0-9]/d' filename > filename.new
Run Code Online (Sandbox Code Playgroud)
或就地修改
sed -i -e '/^[0-9]/d' filename
Run Code Online (Sandbox Code Playgroud)