正则表达式 – 在Linux中移动csv文件的换行问题

前端之家收集整理的这篇文章主要介绍了正则表达式 – 在Linux中移动csv文件的换行问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
[我已经将csv文件移动到具有二进制模式的Linux系统中.一个字段的文件内容将多个行吐出其注释部分,我需要删除新行,保持相同的格式,请帮助shell命令或perl命令

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

[移入linux后,注释字段被分成4行,我想保持注释字段的格式相同但不想要新的行字符

“第一行

第二行

第三行
所有行格式都不应改变“
] 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>

猜你在找的正则表达式相关文章