E219 E36 C5X
C201 C19 C5X
E229 E36 C5X
E239 E36 C5X
C311 C19 C5X
在此文件示例中,我需要删除所有包含 C[0-9][0-9][0-9] 的行。如何使用 sed 命令执行此操作?输出应为:
E219 E36 C5X
E229 E36 C5X
E239 E36 C5X
我尝试了以下代码:
sed -i '/^C[0-9][0-9][0-9]$/d' data
但它不起作用。
答案1
锚点^
和$
让你的表情只匹配完全由单身的4 个字符的序列C[0-9][0-9][0-9]
,而您的data
文件包含多个序列(可能还有一些尾随空格)。如果您放宽该限制,它将起作用,或者
sed '/^C[0-9][0-9][0-9]/d' data
(仅匹配行首)或
sed '/C[0-9][0-9][0-9]/d' data
(匹配一行中的任意位置)。如果您还想删除示例中所示的空行,那么
sed -e '/C[0-9][0-9][0-9]/d' -e '/^$/d' data