当前位置: 首页 > 面试题库 >

换行问题在Linux中移动CSV文件

景嘉实
2023-03-14
问题内容

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

这是三个记录的示例,实际看起来像] 文件的原始内容

[进入linux后,注释字段分为4行,我想保持注释字段的格式相同,但不希望换行符

“第一行

第二行

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


问题答案:

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

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

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

使用"str"infile选项行上的子句构造这样的控制文件,以设置记录字符的结尾。它告诉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>


 类似资料:
  • 在这段代码中,目标是解析一个CSV文件,并将其数据映射到一个bean对象。 文件中的列在原始数据下方有一个标题,有时还有其他信息(如字符串或整数单元格中的数字或单词)。 我在之前的问题中询问如何忽略这些附加信息,并得到了以下代码作为答案: 当我尝试实现此代码时,我在箭头标记的行处出现两个错误。 线程"main"中的异常java.lang.错误:未解决的编译问题: 列表类型中的方法 add(Coun

  • 问题内容: 平台:Debian Wheezy 3.2.0-4-686-pae 编译器:GCC(Debian 4.7.2-5)4.7.2(代码:: Blocks) 我想将文件从一个位置移动到另一位置。移动到不同的驱动器或文件系统没有什么复杂的。我知道执行此操作的“标准”方法是简单地复制文件,然后删除原始文件。但是我想要某种方式来保留文件的所有权,模式,上次访问/修改等。我假设我必须先复制文件,然后再

  • 我有一个德语csv文件,我想用。 数据: 原始文件如下所示: 所以它有两个列(A,B),分隔符应该是, 问题:当我运行命令时: 我得到的错误: 半解决方案:我知道这可能有几个原因,但当我运行命令时: 我将返回以下数据集: 所以我只得到一列,而不是两个想要的列, 目标:任何想法如何正确加载数据集,我有: 提示/尝试: 当我在excel中对我的数据运行搜索功能时,我也没有找到任何

  • 所以,我有一个文本文件中的文件列表。我相信大约有100000个文件。 上述列表中的文件分布在许多目录中,具有不同的大小、文件名、扩展名、年龄等。 我正试图找到一种方法来移动这些文件,只是那些,到另一个驱动器。 复杂因素:一些文件具有相同的名称,但不是同一个文件。不能只将它们移动到一个文件夹中,并对多个文件夹执行覆盖或忽略策略。 最好,我希望他们保留他们的目录结构,但只在目标目录中包含我想要的文件。

  • 我是Java新手。我的本地文件夹中有以下CSV文件:。文件的第一行是标题。我想替换文件中标题和值的双引号,并将文件替换在同一位置。我用这段代码在读取CSV时删除双引号来模拟逻辑,但没有成功。 实际<代码>我的文件。csv(示例记录): 所需的(示例记录):

  • 问题内容: 我正在尝试将数据整理到.CSV文件中。我想将数据放在特定的行中,所以我尝试将“ \ n”放进去,但是它不起作用。请帮助我将数据放入特定的行中。谢谢提前.. 问题答案: 您的代码看起来不错,并且我确定换行符已正确写入文件中。我能想到的唯一原因是,您使用的编辑器未将文件视为行分隔符,而是将对视为行分隔符(如Windows上的记事本)打开了文件。 因此,您可以使用编写换行符,也可以使用诸如的