【问题标题】:Remove newline characters in file [duplicate]删除文件中的换行符[重复]
【发布时间】:2018-03-06 09:33:36
【问题描述】:

我有一个带有逗号分隔值的文本文件,其中列值中有换行符。所以它使列数据拆分到下一行导致数据问题。

样本数据

"604","56-1203802","xx","VEN","null","50","1","20","N�
jTï"
"5526","841328305","yyINC","VEN","null","50","1","20","~R¿½K�ï
¿½ï¿½}("
"604","561203802","C","VEN",,"null","50","1","20","2ï½a��"

预期输出

"604","56-1203802","xx","VEN","null","50","1","20","N�jTï"
"5526","841328305","yyINC","VEN","null","50","1","20","~R¿½K���}("
"604","561203802","C","VEN",,"null","50","1","20","2ï½a��"

我需要删除双引号字符串中的换行符。

我尝试了下面的 awk 命令来删除它,但它没有按预期工作。

gawk -v RS='"' 'NR % 2 == 0 { gsub(/\n/, "") } { printf("%s%s", $0, RT) }' infile.txt > outfile.txt

所需的结果是从数据中删除 LF 和 CR 字符。

我为发布的类似问题尝试了解决方案,但对我不起作用。

文件中的换行符是不可见的,除非当它显示为 CR LF 时复制到 Notepad++。

【问题讨论】:

  • 请不要发布数据的图像,我们不会将其输入并用于测试。
  • @JamesBrown 是的,现在改变了。请看一下
  • 请为示例数据添加代码标签而不是引号。
  • 您收到了last time you asked 的答案。阅读答案并提出一个具体的新问题(如果有的话)。

标签: perl awk sed gawk tr


【解决方案1】:

你可以试试这个sed:

sed ':loop; /" *$/!{N;s/\n//g; b loop}' file

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多