gpt4 book ai didi

regex - 在 Linux 中移动 csv 文件的换行问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:42 25 4
gpt4 key购买 nike

[我已经将csv文件以二进制方式移动到Linux系统中。一个字段的文件内容在其注释部分被吐成多行,我需要删除新行,保持相同的格式,请帮助shell命令或perl命令

这里是三个记录的例子,实际看起来像] Original content of the file

[进入linux后,comments字段被分成4行,我想保持comment字段的格式不变,但不想换行符

"第一行

第二行

第三行所有行格式不应更改”] 2

最佳答案

正如我在上面的评论中所说,规范尚不清楚,但我怀疑这就是您想要做的。下面是一种使用 sqlldr 将数据加载到 Oracle 的方法,其中一个字段被双引号括起来并包含换行符,其中记录的末尾是回车符/换行符的组合。当数据来自保存为 .csv 的 Excel 电子表格时,可能会发生这种情况,例如,其中单元格包含换行符。

这是由 Excel 导出为 .csv 并在 gvim 中查看的数据文件,打开了显示控制字符的选项。您可以将换行视为 '$' 字符,将回车视为 '^M' 字符:

100,test1,"1line1$
1line2$
1line3"^M$
200,test2,"2line1$
2line2$
2line3"^M$

像这样构造控制文件,使用 infile 选项行上的 "str" 子句来设置记录结束字符。它告诉 sqlldr 十六进制 0D(回车,或 ^M)是记录分隔符(这样它将忽略双引号内的换行符):

LOAD DATA
infile "test.dat" "str x'0D'"
TRUNCATE
INTO TABLE test
replace
fields terminated by ","
optionally enclosed by '"'
(
cola char,
colb char,
colc char
)

加载后,数据看起来像这样,注释字段中的换行符(我称之为 colc)被保留:

SQL> select *
2 from test;

COLA COLB COLC
-------------------- -------------------- --------------------
100 test1 1line1
1line2
1line3

200 test2 2line1
2line2
2line3

SQL>

关于regex - 在 Linux 中移动 csv 文件的换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com