我有一个包含很多行的文件。
我想删除从第1458行到文件末尾的内容。我认为我可以做到这一点sed
,但我不知道该怎么做。
答案1
sed '1458,$d'
如有必要,您可以使用它来-i
编辑文件。
例如
sed -i '1458,$d' filename.txt
答案2
有很多可能性可以做到这一点,但如果文件非常大,最好停止处理给定位置之后的任何行并退出。这正是该命令q
的设计目的sed
:
sed 1458q file
答案3
$ head -n 1458 myfile > myfile.tmp ; mv myfile.tmp myfile
旁注:据我所知,没有明确的方法可以根据行数缩短文件(在 bash/shell 等中),这不涉及首先创建一个新文件(这就是 sed 或 sed -i(n place)确实如此。)如果剩余磁盘空间不足以容纳新写入的文件,这很重要。在这种情况下,如果您可以粗略地猜测新文件的大小,请 truncate -s {number of bytes} myfile做删除文件末尾,而不创建新文件。