如何使用sed删除文件中的所有双引号

MRT*_*day 45 sed

我有一个名为file.txt的文件.它有很多双引号.我想删除所有这些.

我试过了 sed 's/"//g' file.txt

我试过了 sed -s "s/^\(\(\"\(.*\)\"\)\|\('\(.*\)'\)\)\$/\\3\\5/g" file.txt

两者都没有奏效.

如何删除文件中的所有双引号?

Vic*_*cky 106

您只需要在第一个示例中转义引号:

$ sed 's/\"//g' file.txt
Run Code Online (Sandbox Code Playgroud)

  • 或者如果你的`sed`支持`-i`选项,那么你也应该用编辑过的文件替换文件. (10认同)
  • 是的,`sed`默认情况下将输出定向到标准输出并且不接触输入文件.如果你想将输出保存到文件中,请执行`sed's/\"// g'file.txt> file_new.txt`然后当你对file_new.txt感到满意时,删除旧文件并重命名新文件. (9认同)
  • 我跑了这个,在屏幕上它飞了几千个条目,引号都没了.但是在file.txt中,引号仍在那里. (3认同)

小智 26

你确定你需要使用sed吗?怎么样:

tr -d "\""
Run Code Online (Sandbox Code Playgroud)


oct*_*ian 11

要替换到位,您还可以:

sed -i '' 's/\"//g' file.txt
Run Code Online (Sandbox Code Playgroud)

或者在Linux中

sed -i 's/\"//g' file.txt
Run Code Online (Sandbox Code Playgroud)


小智 6

尝试这个:

sed -i -e 's/\"//g' file.txt
Run Code Online (Sandbox Code Playgroud)


Mik*_*e Q 5

补充评论。是的,这有效:

    sed 's/\"//g' infile.txt  > outfile.txt
Run Code Online (Sandbox Code Playgroud)

(但是使用批处理 gnu sed,只会打印到屏幕)

在批处理脚本(GNU SED)中,需要这样做:

    sed 's/\x22//g' infile.txt  > outfile.txt
Run Code Online (Sandbox Code Playgroud)