views:

62

answers:

2

I need to delete the same line in a large number of text files. I have been trying to use sed, but I cannot get it to delete the newline character at the end. The following successfully deletes the line, but not the newline:

sed -i -e 's/VERSION:1//' *.txt

I have tried using the following to delete the newline also, but it does not work:

sed -i -e 's/VERSION:1\n//' *.txt

Is there anyway to specify a newline in a sed substitute command OR is there any other command line tool I can use to achieve my goal? Thank you

+3  A: 

You can use the sed command:

sed -i -e '/VERSION:1/d'

for this.

The following transcript gives an example:

pax> echo 'hello
> goodbye
> hello again' | sed '/oo/d'
hello
hello again

You should also check whether you want to match whole lines with, for example:

sed -i -e '/^VERSION:1$/d'

since, as it stands, that will also delete lines like the following:

VERSION:10
CONVERSION:1
paxdiablo
+2  A: 
sed '/VERSION:1/{:q;N;s/VERSION\n//g;t q}' file
ghostdog74