Как избежать двойных кавычек при использовании sed? - PullRequest
1 голос
/ 15 сентября 2011

Я пытаюсь удалить все строки текста, которые содержат двойные кавычки, и я пробовал это:
sed -ne '/\"/!p' theinput > theproduct
Это оставило строки без изменений.Что я делаю?Вот мой скрипт: `touch tmp.txt open tmp.txt read -sn 1 -p" Вставьте данные и нажмите любую клавишу для преобразования "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

Первая команда sed работает.Он заменяет дефис кучей пробелов (не спрашивайте, зачем мне это нужно).Команда grep, которую я добавил из ответа, не работает.Оставляет строки с кавычками нетронутыми.

Ответы [ 2 ]

3 голосов
/ 15 сентября 2011

Нет необходимости избегать двойной кавычки:

sed -ne '/"/!p' theinput > theproduct
1 голос
/ 15 сентября 2011

Очень странно.Это "работает для меня"

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

Возможно, это проблема версии с sed?

Однако, вы также можете рассмотреть возможность использования grep -v для этого.

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