J'ai un file avec une list d'e-mails et chaque ligne contient un e-mail. Je veux supprimer les lignes qui contiennent la string example.com
ou test.com
.
J'ai essayé ceci:
sed -i 's/example\.com//ig' file.txt
Mais cela ne supprimera que la string example.com
, comment puis-je supprimer toute la ligne?
Avec GNU sed:
sed '/example\.com/d;/test\.com/d' -i file.txt
supprimera les lignes avec example.com
et test.com
.
De man sed
:
d Delete pattern space. Start next cycle.
POSIXly, vous pouvez utiliser grep
:
grep -Eiv '(example|test)\.com' <in >out
Votre regex correspond uniquement à example.com
et sed
remplace uniquement example.com
par une string vide. Votre regex doit correspondre à n'importe quelle ligne contenant example.com ou test.com
sed -i 's@.*\(test\|example\)\.com.*@@i' file.txt