Bash sed删除了一些但不是所有的双引号

Bash sed删除了一些但不是所有的双引号,bash,sed,Bash,Sed,我有一个目录,里面有64个大tsv文件(总共2亿行以上)。它们包含一些文本字段,我需要从文本中删除所有“,因为它会干扰数据库摄取。因此我运行了以下命令: for FILE in*;do cat$FILE | sed's/“//g'>/my/FILE/path/$FILE;完成 这几乎删除了所有的“,但仍有123行被标记。下面是一个记录为仍包含双引号字符的行的示例: 2199180165 22362 alguien por casualidad quiere decir al

我有一个目录,里面有64个大tsv文件(总共2亿行以上)。它们包含一些文本字段,我需要从文本中删除所有
,因为它会干扰数据库摄取。因此我运行了以下命令:

for FILE in*;do cat$FILE | sed's/“//g'>/my/FILE/path/$FILE;完成

这几乎删除了所有的
,但仍有123行被标记。下面是一个记录为仍包含双引号字符的行的示例:

2199180165  22362           alguien por casualidad quiere decir algo reflexiones sobre las interpretaciones de los silencios en programas de inclusion para jovenes "¿Alguien por casualidad quiere decir algo? Reflexiones sobre las interpretaciones de los silencios en programas de inclusión para jóvenes      2015    2015-04-01      Consejo General de Colegios de Diplomados en Trabajo Social                 107 101 114 0   1   1   Servicios sociales y política social            2016-06-24"

阻止sed删除双引号的这一行的内容是什么?如何更改正则表达式以删除这些字符?

您的工作目录是什么

for FILE in*;do cat$FILE | sed's/“//g'>/my/FILE/path/$FILE;完成

?如果是
/my/file/path/
,则可能会损坏该文件,因为同时读取和写入同一文件会出现各种问题。这可以解释为什么一些
被删除,而另一些则没有

要解决此问题,可以使用临时文件或
sed
的就地选项
-i
。后者也会使循环无效

sed -i 's/"//g' *

如果不起作用,请尝试注释中写的
LC_ALL=C tr-d\“

这些行是位于文件的特定部分,还是随机分布?据我所知,它们只是随机分散,虽然不确定是否与区域设置有关,但您可以尝试在调用
sed
之前导出LC_ALL=C
。我无法重现您的问题。对我来说,
sed
删除了结尾处的
。如果
LC\u ALL=C
不起作用,你可以下一步尝试
tr-d\”