我最近正在寻找一种删除文件最后一行的方法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
按照建议的原始片段进行操作)