如何从文件中删除除最后10行之外的所有行?

sbr*_*ink 13 bash sed tail

是否可以通过简单的shell命令仅保留一行的最后10行?

tail -n 10 test.log
Run Code Online (Sandbox Code Playgroud)

提供正确的结果,但我不知道如何修改test.log本身.和

tail -n 10 test.log > test.log
Run Code Online (Sandbox Code Playgroud)

不起作用.

Ank*_*sal 18

你可以使用tempfile来做到这一点.

tail -n 10 test.log > test1.log

mv test1.log test.log
Run Code Online (Sandbox Code Playgroud)

  • 这有效,谢谢。但是,**不要忘记“1”**,因为我执行了“tail -n 10 test.log > test.log”并且留下了一个空白文件! (2认同)

小智 10

echo "$(tail -n 10 test.log)" > test.log
Run Code Online (Sandbox Code Playgroud)

行情很重要.它们保留换行符.