![使用 head 删除文件最后一行时出现问题](https://linux22.com/image/87403/%E4%BD%BF%E7%94%A8%20head%20%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E6%9C%80%E5%90%8E%E4%B8%80%E8%A1%8C%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我最近正在寻找一种删除文件最后一行的方法foo.txt
,并遇到了以下解决方案
head -n -1 foo.txt temp.txt; mv temp.txt foo.txt
效果很好。不过,我也简单地尝试过
头 -n -1 foo.txt > foo.txt
令我惊讶的是,留下了foo.txt
一个空的文本文件,我想知道为什么。
我刚刚开始使用 unix,所以我的问题可能相当愚蠢。
答案1
因为重定向>
发生了前命令的其余部分。
如果您想进行就地编辑,您将需要一个适当的实用程序。例如perl
或sed
。 (或者只是mv
按照建议的原始片段进行操作)