我想在linux中使用sed命令替换csv文件中的^M\n部分空格

我想在linux中使用sed命令替换csv文件中的^M\n部分空格

我想在 Linux 中使用 sed 命令替换 CSV 文件中的 ^M\n 部分空格......

我用过sed 's/\n/ /g',但它只是替换 \ 而不是其他部分......

为了更具描述性,我使用类似的查询

| sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > file.csv

查询结果将收集在 csv 文件中。但我可以看到\ncsv 文件中有这些字符......我想删除它们。所以......我需要相应地更改 sed 命令......而不是\n我应该得到空格字符......

答案1

即使在做了之后我也遇到了这个问题dos2unix。我能够用下面的代码解决这个问题。

sed -i  "s/\r/ /g" <fileName>
  • ^Mctrl+r,所以\r用文件中的空格替换

答案2

要将文件中的 DOS 行结尾替换为空格file

dos2unix file
tr '\n' ' ' file >newfile

首先将文件转换为 Unix 文本文件,然后用空格替换每个换行符。结果写入新文件newfile

一步(不修改file):

dos2unix <file | tr '\n' ' ' >newfile

有点不安全(因为它删除了全部文件中的回车符,即使它们不是 DOS 行结尾的一部分(file但不修改):

tr -d '\r' <file | tr '\n' ' ' >newfile

相关内容