需求描述:

  今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉.

  在此记录下删除的过程.删除前n行的记录.

操作过程:

对于数据量比较大的情况(本例5800万行)

1.通过tail命令,将文件尾部的n行数据重定向到新的文件中

tail -n 30000 out.tmp > out.tmp.bak

2.然后删除旧的文件,将新的文件修改为原名字

rm out.tmp
mv out.tmp.bak out.tmp

备注:这样的话文件out.tmp尾部的30000行就保存下来,之前的行就删除掉了.在我的测试环境中,out.tmp中的记录大概5800万+

对于数据比较少的情况

1.查看文件中数据,确定要删除的数据

将第5行后面的都删除掉,也是通过-n来重定向

2.tail -n +k来实现该功能

[root@testvm01 ~]# wc -l install.log
249 install.log
[root@testvm01 ~]# tail -n +5 install.log > install.log.tmp #将第5行之后的内容重定向到另外一个临时文件中
[root@testvm01 ~]# rm -f install.log
[root@testvm01 ~]# mv install.log.tmp install.log
[root@testvm01 ~]# head install.log #第5行之前的都已经不在了,采用了另外的方法实现了删除的功能.
Installing tzdata-2014g-1.el6.noarch
Installing basesystem-10.0-4.el6.noarch
Installing ncurses-base-5.7-3.20090208.el6.x86_64
Installing glibc-common-2.12-1.149.el6.x86_64
Installing nss-softokn-freebl-3.14.3-17.el6.x86_64
Installing glibc-2.12-1.149.el6.x86_64
Installing ncurses-libs-5.7-3.20090208.el6.x86_64
Installing bash-4.1.2-29.el6.x86_64
Installing libattr-2.4.44-7.el6.x86_64
Installing libcap-2.16-5.5.el6.x86_64
[root@testvm01 ~]# wc -l install.log
245 install.log

小结:同样可以利用head命令来删除文件的尾部的n行.

在数据挖掘中我们经常会增量更新训练日志,需要删除前n行的过期数据,直接用sed命令比较慢:
tail -n +3 old_file > new_file
mv new_file old_file
这样就删除了前2行,速度要比sed命令快

linux删除文件的前n行的更多相关文章

  1. linux环境中如何删除文件的前n行?

    需求描述: 今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉. 在此记录下删除的过程.删除前n行的记录. 操作过程: 对于数据量比较大的情况(本例5800万 ...

  2. linux文件截取前几行,后几行,中间几行命令

    1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 2. 如果你想查看文件的后10行,可以使用tail命令,如: tail -2 /etc/passwd ...

  3. Linux 删除文件夹和文件的命令(转载)

    Linux 删除文件夹和文件的命令 听语音 | 浏览:93339 | 更新:2013-05-02 18:40 | 标签:linux 文件夹 linux删除目录很简单,很多人还是习惯用rmdir,不过一 ...

  4. linux删除文件未释放空间问题处理

    linux删除文件未释放空间问题处理 或者 /根分区满了 (我的根分区是/dev/sda1,/dev/sda1满了) http://blog.csdn.net/donghustone/article/ ...

  5. 解决linux删除文件后空间没有释放问题

    linux删除文件后沒有释放空间 今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [ro ...

  6. head 命令 读取文件的前n行,默认查看文件的前十行

    head 命令 读取文件的前n行 默认查看文件的前十行 head /etc/passwd # 默认查看文件的前十行 /etc/passwd # 查看文件的前两行

  7. Linux 删除文件后空间不释放【原创】

    删除MySQL备份文件后,查找文件所在目录发现文件已经备删除了,但是空间没有释放,还是83% 解决方法: lsof|grep -i delete 发现进程还在,杀掉进程 kill -9 5377 再次 ...

  8. linux删除N天前的文件

    列出一天之前的文件的属性用下面的命令:find . ! -mtime -1 -print |xargs ls -lfind . -mtime +1 要删除文件的话用下面的命令:find . ! -mt ...

  9. Linux 删除文件夹和创建文件的命令

    删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 删除文件使用实例: rm -f /var/log ...

随机推荐

  1. 下载文件时-修改文件名字 Redis在Windows中安装方法 SVN安装和使用(简单版) WinForm-SQL查询避免UI卡死 Asp.Net MVC Https设置

    下载文件时-修改文件名字   1后台代码 /// <summary> /// 文件下载2 /// </summary> /// <param name="Fil ...

  2. 自定义View(三),仿支付宝芝麻信用自定义控件

    仿支付宝的芝麻信用仪表盘 实现的效果 实现的功能: 指针和数字动态改变 背景动态变化 没了... 代码如下 MyCustomView.java package com.example.testcust ...

  3. POJ 3322 Bloxorz

    #include<cstring> #include<algorithm> #include<iostream> #include<cstdio> #i ...

  4. python应用-21根火柴游戏

    """ 21跟火柴 """ from random import randint def main(): total=21 while to ...

  5. Elasticsearch 日期类型的自动监测,官方文档

    资料 网址 Elasticsearch Reference [7.3] » Mapping » Field datatypes » Date datatype https://www.elastic. ...

  6. rsync+inotify百万级文件实时同步

    实验环境:Centos7.4 目的:将源服务器的文件实时同步至目标服务器 源服务器:10.11.1.107 目标服务器:10.11.1.106 分别在两个节点安装rsync yum -y instal ...

  7. Spring AOP中JoinPoint的用法

    Spring JoinPoint的用法 JoinPoint 对象 JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的 ...

  8. 【C/C++】static关键字

    首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0. static性质 隐藏 当同时编译多个文件时,未加static前缀的全局变量和函数都具有全局 ...

  9. cpu的发现

    system.cpu.discovery 检测到的CPU/CPU内核列表.用于低级发现 返回的cpu从0开始编号,其他关于cpu的监控项就可以使用cpu的id进行单个cpu的资源监控

  10. 单点登录的实践demo

    https://github.com/deadzq/web-sso-server 统一认证中心 https://github.com/deadzq/web-system-client1 用户客户端 结 ...