Как использовать sed, чтобы удалить все двойные кавычки в файле - PullRequest
43 голосов
/ 03 октября 2011

У меня есть файл с именем file.txt.Он содержит множество двойных кавычек.Я хочу удалить все из них.

Я пытался sed 's/"//g' file.txt

Я пытался sed -s "s/^\(\(\"\(.*\)\"\)\|\('\(.*\)'\)\)\$/\\3\\5/g" file.txt

Ни один не работал.Я просто удалил все двойные кавычки в файле?

Ответы [ 6 ]

97 голосов
/ 03 октября 2011

Вам просто нужно экранировать кавычку в вашем первом примере:

$ sed 's/\"//g' file.txt
26 голосов
/ 28 марта 2013

Вы уверены, что вам нужно использовать sed? Как насчет:

tr -d "\""
8 голосов
/ 02 июля 2016

Для замены на месте вы также можете сделать:

sed -i '' 's/\"//g' file.txt

или в Linux

sed -i 's/\"//g' file.txt
4 голосов
/ 05 декабря 2012

Дополнительный комментарий. Да, это работает:

    sed 's/\"//g' infile.txt  > outfile.txt

(однако, при использовании пакета gnu sed, будет просто выводиться на экран)

В пакетном сценарии (GNU SED) это было необходимо:

    sed 's/\x22//g' infile.txt  > outfile.txt
2 голосов
/ 03 октября 2011

Попробуйте добавить в кавычку двойную кавычку с обратной косой чертой:

sed 's/\"//g' [file name]
0 голосов
/ 27 июля 2018

Попробуйте это:

sed -i -e 's/\"//g' file.txt
...