Shell 更改CSV文件中的字符-CHR(13)

Shell 更改CSV文件中的字符-CHR(13),shell,csv,character-encoding,character,Shell,Csv,Character Encoding,Character,我无法将文件加载到数据库中。问题是某些单元格(字符串)包含CHR(13)-回车。我使用Sql加载器加载文件,但如果行中包含带有CHR(13)的字符串,它就会变得混乱,脚本会识别出CHR(13)是行的末尾(而不是字符串的末尾),所以结果我从包含20行的文件中得到了25行 我想把CHR(13)改为CHR(32)-空间,但我不知道怎么做。如果我将所有CHR(13)更改为CHR(32),我将删除所有行(因此我的文件将只包含一行)。我怎样才能聪明地做到这一点?我只想删除额外的CHR(13) 我的文件的外观

我无法将文件加载到数据库中。问题是某些单元格(字符串)包含CHR(13)-回车。我使用Sql加载器加载文件,但如果行中包含带有CHR(13)的字符串,它就会变得混乱,脚本会识别出CHR(13)是行的末尾(而不是字符串的末尾),所以结果我从包含20行的文件中得到了25行

我想把CHR(13)改为CHR(32)-空间,但我不知道怎么做。如果我将所有CHR(13)更改为CHR(32),我将删除所有行(因此我的文件将只包含一行)。我怎样才能聪明地做到这一点?我只想删除额外的CHR(13)

我的文件的外观示例:

"Title 1","Title 2","Title 3","Title 4"
"Value 1",,"Value 3","Value 4"
"Value 1",""Value 2","Value 3","Value 4"
"Value 1,""Value
asfsafsaf","Value 3,"Value 4" <--- There is problem
“标题1”、“标题2”、“标题3”、“标题4”
“值1”、“值3”、“值4”
“值1”、“值2”、“值3”、“值4”
“值1”,“值”

asfsafsaf”、“值3”、“值4”使用GNU sed,您可以这样做:

sed -zr 's/([^"])[\n\r]+/\1 /g' yourfile > yourmodified_file
我不能100%确定您的行尾约定是什么,也许您必须尝试其中一种,而不是
[\n\r]+
部分:

  • \r
  • \n

该脚本将cariage return和/或linefeed的序列替换为空格。

我已将单元格中的所有值从\n更改为\r,现在它的工作状态非常好:)为此,我使用了python