如何从文件中删除以不同字符串开头和结尾的行

How to remove a line starting and ending with different strings from a file

我有这样一个文件:

@          IN     NS                 ns1.riodomain.com.
@          IN     A                  192.175.3.255
@          IN     MX     10          root@ns1.riodomain.com.
mail       IN     A                  192.164.2.228
ns1        IN     A                  192.164.2.333

执行后需要得到如下结果

@          IN     A                  192.175.3.255
@          IN     MX     10          root@ns1.riodomain.com.
mail       IN     A                  192.164.2.228
ns1        IN     A                  192.164.2.333

我需要删除具有特定模式的第一行。 有人可以帮忙吗?

根据您的要求(字面意思):

I need to delete line that start with @ and ends with string like riodomain.com. or 192.164.2.333

sed方法:

sed -i '/^@.*\(riodomain\.com\.\|192\.164\.2\.333\)$/d' file

现在,文件内容应如下所示:

@ IN A 192.175.3.255
mail IN A 192.164.2.228
ns1 IN A 192.164.2.333

-i - 选项,修改文件就地

/d - 标志,告诉删除匹配模式的行