首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从文件中所有带引号的文本片段中删除换行符?

如何从文件中所有带引号的文本片段中删除换行符?
EN

Stack Overflow用户
提问于 2011-11-22 06:36:24
回答 3查看 4.2K关注 0票数 4

我已经从数据库导出了CSV文件。某些字段是较长的文本块,可以包含换行符。从这个文件中只删除双引号中的换行符,而保留所有其他行的最简单方法是什么?

我不关心它是否使用Bash命令行、一行程序或简单的脚本,只要它能工作即可。

例如,

代码语言:javascript
复制
"Value1", "Value2", "This is a longer piece
    of text with
    newlines in it.", "Value3"
"Value4", "Value5", "Another value", "value6"

应该删除较长文本中的换行符,但不能删除分隔两行的换行符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-22 06:43:33

在Python中:

代码语言:javascript
复制
import csv
with open("input.csv", "rb") as input, open("output.csv", "wb") as output:
    w = csv.writer(output)
    for record in csv.reader(input):
        w.writerow(tuple(s.remove("\n") for s in record))
票数 7
EN

Stack Overflow用户

发布于 2011-11-22 06:43:13

这里有一个Python的解决方案:

代码语言:javascript
复制
import re
pattern = re.compile(r'".*?"', re.DOTALL)
print pattern.sub(lambda x: x.group().replace('\n', ''), text)

在线查看它的工作方式:ideone

票数 7
EN

Stack Overflow用户

发布于 2011-11-22 07:40:53

这是非常简单的,但可能对您有效:

代码语言:javascript
复制
# cat <<\! | sed ':a;/"$/{P;D};N;s/\n//g;ba'                            
> "Value1", "Value2", "This is a longer piece
>     of text with
>     newlines in it.", "Value3"
> "Value4", "Value5", "Another value", "value6"
> !
"Value1", "Value2", "This is a longer piece    of text with    newlines in it.", "Value3"
"Value4", "Value5", "Another value", "value6"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8219502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档