如何删除文件的最后一行而不读取整个文件或在任何临时文件中重写它。我不想使用sed,因为它将整个文件读入内存。 最后有一个空行。我想删除它并只将更改保存到该文件,以便文件最后不包含空行。从文件中删除最后一个空行并保存文件
0
A
回答
1
我能想到的最简单的方法是:
sed -i '${/^$/d}' filename
编辑只删除空白端线。
您唯一的选择不使用sed
不会读取整个文件是stat
该文件获取大小,然后使用dd
跳到最后才开始阅读。但是,告诉sed
只能在最后一行操作,基本上就是这样。
0
看看
Remove the last line from a file in Bash
编辑:我测试
dd if=/dev/null of=<filename> bs=1 seek=$(echo $(stat --format=%s <filename>) - $(tail -n1 <filename> | wc -c) | bc)
,它是你想要
1
简单的sed命令来删除最后一行的内容:
sed '$d' <file>
这里在sed $是最后一行。
你可以试试awk命令:
awk 'NR > 1{print t} {t = $0}END{if (NF) print }' file
使用cat:
cat file.txt | head -n -1 > new_file.txt
相关问题
- 1. 从每个文本文件中删除最后一个空行
- 2. 从文件中删除最后一个空行
- 3. batfile - 如何删除文件中的最后一行,空行?
- 4. 从文件中删除第一行和最后一行
- 5. 从文本文件中删除最后一行
- 6. 删除文件的最后一行
- 7. 删除每个文件的第一行后合并CSV文件
- 8. 从多个文本文件中删除第二行最后一行
- 9. 蝙蝠文件删除文件中的最后一个字符?
- 10. 从一个月中删除所有文件,但是删除最后一个
- 11. 从txt文件中删除空行
- 12. 从文件中删除空行
- 13. 从多个.txt文件中删除最后6行
- 14. 如何删除XML文件中的重复值并保留最后一个?
- 15. 从文本文件中删除一行?
- 16. 合并csv文件但删除最后一行和多列
- 17. 以“汇总”信息删除CSV文件中最后一个行
- 18. 从文件中的每一行中删除最后一个字符串
- 19. 删除文件后的空白行python
- 20. txt文件删除URL到最后一个“/”来获得文件
- 21. 删除文本文件中每行的最后两个字符
- 22. 从文本文件中删除最后10个字符
- 23. DOS批处理输出TXT文件中删除最后一个空行
- 24. 从txt文件的每一行删除第一个和最后一个字符
- 25. 删除文本文件中的最后一个管道
- 26. Python - 删除文本文件中的最后一个字符
- 27. 批量删除文件并保存最近一次从子目录
- 28. 写入一个文件,但只保存最后一行
- 29. 从bash数组中删除重复项并保存到文件
- 30. jquery从外部文件中删除标签并保存它们
SED -i -u ... -u意味着* *缓冲,因此降低了内存使用 – NeronLeVelu
在这种情况下,由于你跳到最后,你肯定会想要使用缓冲读取来加速进程,特别是对于大文件。 –
缓冲速度写入过程但问题是这里的内存不处理速度说OP – NeronLeVelu