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)