Use sed:
sed -i -e '/^domain$/d' test.txt
Eu tenho um arquivo com este conteúdo: dskldfsd.com
domain
domain.com
sub.domain.com
domain.main.com
anythinghere
Desejo excluir a linha que contém a palavra domain
. Usando o grep, este comando encontra a linha exata que eu quero:
grep -w '^domain$' test.txt
Mas eu quero excluir esta linha que contém domain
como uma única palavra do começo ao fim da linha. Eu quero manter as linhas onde a palavra domain
é apenas parte da string.
Que tal
grep -v '^domain$' test.txt
Por que grep -v '^ domain $' Como por questão, seu simples grep -v 'domain', de acordo com o meu entendimento.
Supondo que você gostaria de usar ferramentas padrão, você poderia fazer
grep -xF -v 'domain' test.txt >newtest.txt
A -x
flag para grep
força a correspondência a ficar em toda a linha, e -F
torna grep
tratar o padrão como uma string fixa, em vez de uma expressão regular. O -v
inverte o sentido da correspondência para que, no final, você obtenha todas as linhas em test.txt
, o que não é apenas a string domain
. O resultado é escrito em newtest.txt
.