Se você corresponder a uma substring de toda a linha, use o comando s
do sed com um regex para limpar o restante da linha:
sed -i 's/^.*foo.*$/another string/' myfile.txt
ou use o comando c
para substituir a linha correspondente de uma só vez:
sed -i '/foo/ { c \
another string
}' myfile.txt
Se você não quiser digitar comandos de múltiplas linhas no prompt, poderá colocá-lo em um script:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt