Bash 如何将换行符添加到不带';我没有
我有一个非常大的Bash 如何将换行符添加到不带';我没有,bash,csv,unix,Bash,Csv,Unix,我有一个非常大的.csv文件(2 GB),在该文件上运行file file.csv返回ASCII文本,具有非常长的行,没有行终止符。我试图将这个大文件分割成小文件,但所有的方法似乎都依赖于有某种标准的换行符,而我的文件没有 如何在行尾添加换行符 编辑:我试过使用unix2dos来做这件事,但它什么也做不了 编辑2:这是前128个字节的hexdump: 00000000 49 64 2c 55 73 65 6e 6e 61 6d 65 2c 44 61 74 65 |Id,Usenname,
.csv
文件(2 GB),在该文件上运行file file.csv
返回ASCII文本,具有非常长的行,没有行终止符。我试图将这个大文件分割成小文件,但所有的方法似乎都依赖于有某种标准的换行符,而我的文件没有
如何在行尾添加换行符
编辑:我试过使用unix2dos
来做这件事,但它什么也做不了
编辑2:这是前128个字节的hexdump
:
00000000 49 64 2c 55 73 65 6e 6e 61 6d 65 2c 44 61 74 65 |Id,Usenname,Date|
00000010 74 69 6d 65 50 6f 73 74 65 64 2c 54 61 67 55 73 |timePosted,TagUs|
00000020 65 64 34 32 2c 36 31 62 61 61 65 62 61 38 64 65 |ed42,61baaeba8de|
00000030 31 33 36 64 39 63 31 61 61 39 63 31 38 65 63 33 |136d9c1aa9c18ec3|
00000040 38 36 30 65 38 2c 32 30 30 34 2d 31 31 2d 30 34 |860e8,2004-11-04|
00000050 20 30 32 3a 32 35 3a 30 35 2e 33 37 33 37 39 38 | 02:25:05.373798|
00000060 2b 30 30 2c 65 63 6f 6c 69 34 32 2c 36 31 62 61 |+00,ecoli42,61ba|
00000070 61 65 62 61 38 64 65 31 33 36 64 39 63 31 61 61 |aeba8de136d9c1aa|
在第3行,在ed
和42
之间应该有一个换行符,同样地,在第7行,在ecoli
和42
之间应该有一个换行符。这个输出是否意味着我得到的csv实际上只是一条长线
谢谢关于“在行尾添加换行符”的问题是一个悖论。如果你自己不能定义一行的结束位置,你编写的任何程序也不能定义。@AndrasDeak-我怎么才能知道换行符是什么?文本编辑器没有显示任何内容。或者,它是您系统的外来内容,或者它们确实丢失了。您应该使用适当的工具查看文件,例如vim
和:set list
,它们将显示大多数不可打印的内容。如果你在csv中找不到任何可能是新行的东西,你就……处于一个困难的境地。您仍然可以尝试从csv本身推断结构,例如,如果它有一个标题行,那么您可以手动计算列数,或者以更集中的方式搜索终止符……这可能是一个行尾问题:阅读应用程序需要与文件相同的其他行尾。您能否将lineendings从Unix转换为Windows约定并重试(之前进行备份!)?@AndrasDeak这听起来是一个很好的解决方法-共有4列,由,
分隔-是否有快速的一行程序可以在每4列之后添加特定的换行符?