bash supprimer une ligne d'un fichier, de façon permanente

J'ai le code suivant pour trouver une chaîne de caractères dans un fichier, puis supprimez la ligne qui contient la chaîne de caractères.

echo `sed  /$string/d  file.txt` > file.txt

le problème est que si, à l'origine file.txt contient:

a
b
c

après la suppression de "un" (chaîne de caractères=a) file.txt deviendra

b c

au lieu de

b
c

quelqu'un peut-il m'aider?

InformationsquelleAutor Sara | 2012-07-25