我的文件非常大(> 5G),我想按行号删除一些行无需移动(复制和粘贴)文件.
我知道这个命令适用于小文件。 (我的 sed 命令无法识别 -i 选项)
sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt
由于该命令的大小,该命令需要相对较长的时间。例如,我只需要删除第一行和最后一行,但也想知道如何删除行号n。
由于文件在标准文件系统(NTFS、EXTFS 等)上的存储方式,您无法就地删除文件的部分内容。
您唯一可以就地执行的操作是
- 追加到文件末尾(追加模式)
- 修改文件中的数据(读写模式)
其他操作必须使用临时文件或临时内存来完全读取文件并将其修改写回。
编辑:您还可以“缩小”读取的文件here https://stackoverflow.com/questions/5221869/shrinking-a-file-in-c使用 C 程序(Linux 或 Windows 都可以),这意味着您可以删除最后一行(但仍然不能删除第一行或中间的任何行)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)