bash delete a line from a file, permanently

file, line, sed

Solution

This is because of the backticks. Do this instead:

sed -i /$string/d  file.txt

Note, if you want to do this in-place, you need to use `-i` to `sed` as `>` will destroy the file before `sed` can read it.

Problem

I have the following code for finding a string in a file then delete the line which contains that string. ``` echo `sed /$string/d file.txt` > file.txt ``` the problem is that if initially file.txt contains: ``` a b c ``` after deleting "a" (string=a) file.txt will become ``` b c ``` instead of ``` b c ``` can any one help me?

Original source