t3hcakeman
t3hcakeman

Reputation: 2339

How do you escape a double quote while using sed?

I'm trying to remove all lines of text that contain a double quote, and I have tried this:
sed -ne '/\"/!p' theinput > theproduct
It left the lines untouched. What do I do? Here is my script: `touch tmp.txt open tmp.txt read -sn 1 -p "Paste in data and press any key to convert" echo

touch tmp.txt
open tmp.txt
read -sn 1 -p "Paste in data and press any key to convert"
echo
sed -e 's/-/                             /g' tmp.txt > tmp2.txt
grep -v '"' tmp2.txt > final.txt
open final.txt
echo Study Conversion Successful

The first sed command works. It replaces a hyphen with a bunch of spaces (don't ask why I need that). The grep command, which I added from a response, does not work. It leaves the lines with quotes untouched.

Upvotes: 1

Views: 1717

Answers (2)

Ray Toal
Ray Toal

Reputation: 88478

Very strange. It "works for me"

$ cat data.txt
dsklfljs
sdjflk"Sdgsd"
sdfj sldkfj "Sdfsd"
sdfj 
sdf
sdjflks
$ sed -ne '/\"/!p' data.txt
dsklfljs
sdfj 
sdf
sdjflks

Perhaps it is a version issue with sed?

However, you can also consider using grep -v for this.

$ grep -v '"' data.txt
dsklfljs
sdfj 
sdf
sdjflks

Upvotes: 1

ennuikiller
ennuikiller

Reputation: 46985

Its not necessary to escape the double quote:

sed -ne '/"/!p' theinput > theproduct

Upvotes: 3

Related Questions