Ter*_*den 5 command-line sed csv files
我有一个 67GB 的 .csv 文件(我知道...我知道...)
我需要从文件中删除第 4,125,878 行,因为它已损坏。我的 CSV 解析工具不会忽略或跳过它。
我可以用sed做类似的东西
sed '4125878d' in.csv > out.csv
但就时间和磁盘空间而言,这将是一项非常昂贵的操作。
如果我使用sed -i '4125878d' in.csv,则操作需要很长时间。
有没有办法可以快速从一个大文件的中间删除一行?
我相信不会。
即使 sed 或您使用的任何程序足够聪明,可以就地进行更改而不是使用临时文件,它仍然必须在您要删除的行开始之后重写所有数据。
删除一行意味着您将文件的所有内容从该点左移到上一行的末尾。无论如何,您仍然需要从那时起重写该文件。