2017-10-03 5 views
0

J'ai un fichier d'hôte avec deux marquages ​​quelque part et j'ai besoin d'enlever toutes les lignes entre les deux marques, y compris les marques.Supprimer le texte entre deux jetons, y compris les jetons dans le fichier makefile

Je trouve cette commande dans une autre question:

cat hostfile | grep -P '(?<=##STARTMARK).*(?=##ENDMARK)' 

mais qui laisse encore les marqueurs là-dedans.

J'ai actuellement ce

127.0.0.1 home-host.dev 

##STARTMARK 
127.0.0.1 a-blocked-host.com 
##ENDMARK 

et je veux ce

127.0.0.1 home-host.dev 

Répondre

0

Essayez d'utiliser sed,

sed '/##STARTMARK/,/##ENDMARK/d' hostfile 
127.0.0.1 home-host.dev 

Notez la deuxième ligne (c.-à-la ligne blanche) serait être conservé car ils ne sont pas embrassés par les jetons comme vos critères.