Answers:
sed中的sed $
是最后一行,因此删除最后一行:
sed '$d' <file>
sed -i '$d' <file>
在适当位置编辑文件。
最后一行的$:
sed '$d' file
sed '$d' file; sed '$d' file
sed '$d' file
实际上并没有修改文件;它只是打印出文件的内容,减去最后一行。因此sed '$d' file; sed '$d' file
将两次打印出文件内容,每次减去最后一行。的最后两行删除sed '$d' file
是sed '$d' file | sed '$d'
。
sed -n '1{h;n;}; $q; x; p;'
。我在吹嘘我们不能做得到sed '$-1,$d'
。
cat file.txt | head -n -1 > new_file.txt
请注意,根据命令的最后一行file.txt
(如果它以EOF
,或\n
然后结尾)看来,此命令后EOF
的行数new_file.txt
可能相同(与file.txt
)相同(在没有时发生\n
)-在任何情况下,最后一行的内容将被删除。
另外,请注意,您必须使用第二个(中间)文件。如果您选择猫并将其重定向到同一文件,则将其删除。
head -n -1 file.txt > new_file.txt
。请注意,尽管负数head -n
仅适用于的某些实现head
。例如,它不适用于FreeBSD或BusyBox版本的head
。
head -n -1 file.txt > new_file.txt
更好。对于我的两个注释,它的工作方式相同(行数相同,并且在同一文件上擦除)。至于否定论点,Unix之间有时会出现这种差异,并且它们常常令人沮丧,因为您希望它完全是同一条命令(为什么您不这样做-名称和目的相同!)点。(我使用Debian。)
head --lines=-1
。我首先在SLES11SP2系统的手册页(coreutils-8.12-6.23.1)中偶然发现了这种可能性。
tail
并且head
是coreutils
-rpm的一部分(至少对于基于rpm的系统而言)。
根据coreutils的更新日志,从coreutils-version 5.0.1开始支持此语法。
坏消息:根据RH5手册页,此选项未描述
好消息:它可以与RH5一起使用(因此,在您的情况下:它可以-至少与当前版本的RH5一起使用)。
rpm -q coreutils
显示我(在CentOS 5.8上):coreutils-5.97-34.el5_8.1
我不确定是否是RH5.5。已经有支持它的coreutils-version。但是无论如何,5.5都已失效。
head
和tail
...