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列之后添加特定的换行符?