linux下获取记录文件的前N行或后N行

        这几天在做ARM linux嵌入式设备的应用程序,要记录设备的启动记录,但是又怕长时间运行,记录文件太大,导致写爆存储,故想之保留记录文件的最后N行来保证存储不会被写爆。

       故开始问度娘要解决方案,网上提供了head和tail两个命令。

      1. head命令

       head命令用于显示文件文字区块,可以显示文件的前N行,例如:head -10 test.txt  ,该命令会打印test.txt文件的前10行到终端。

      2. tail命令

        tail命令用于显示文件文字区块,可以显示文件的最后N行,例如:tail -10 test.txt  ,该命令会打印test.txt文件的最后10行到终端。

      我想让记录文件之保留最后1000行,尝试使用tail命令然后重定向的方式来实现,使用tail -1000 test.txt > test.txt,但是使用该命令后test.txt文件直接被清空了,看来不能把输出重定向到自己。

     然后接着尝试,使用比较折中的办法,先把记录文件的最后1000行重定向到另一个文件B,然后删除原有的文件,再把B文件修改为原有的记录文件名,经过试验该方法可以实现我想要的结果。命令如下:

      tail -1000 test.txt > test1.txt && rm test.txt && mv test1.txt test.txt

      方法虽然有点曲折,但是还是实现了要求,不知大神是否有别的更直接的方式实现保留某个文件的最后N行的方法,还请大神赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值