我有一个主机文件,其中有两个标记某处,我需要删除两个标记之间的所有行,包括标记。
我在另一个问题中找到了这个命令:
cat hostfile | grep -P '(?<=##STARTMARK).*(?=##ENDMARK)'
但仍留有标记。
我目前有这个
127.0.0.1 home-host.dev
##STARTMARK
127.0.0.1 a-blocked-host.com
##ENDMARK
我想要这个
127.0.0.1 home-host.dev
答案 0 :(得分:1)
尝试使用sed
,
sed '/##STARTMARK/,/##ENDMARK/d' hostfile
127.0.0.1 home-host.dev
请注意,第二行(即空白行)将被保留,因为它们不会被令牌作为您的标准所接受。