linux删除文件的前n行
需求描述:
今天看了一个系统的临时文件,有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行的更多相关文章
- linux环境中如何删除文件的前n行?
需求描述: 今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉. 在此记录下删除的过程.删除前n行的记录. 操作过程: 对于数据量比较大的情况(本例5800万 ...
- linux文件截取前几行,后几行,中间几行命令
1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 2. 如果你想查看文件的后10行,可以使用tail命令,如: tail -2 /etc/passwd ...
- Linux 删除文件夹和文件的命令(转载)
Linux 删除文件夹和文件的命令 听语音 | 浏览:93339 | 更新:2013-05-02 18:40 | 标签:linux 文件夹 linux删除目录很简单,很多人还是习惯用rmdir,不过一 ...
- linux删除文件未释放空间问题处理
linux删除文件未释放空间问题处理 或者 /根分区满了 (我的根分区是/dev/sda1,/dev/sda1满了) http://blog.csdn.net/donghustone/article/ ...
- 解决linux删除文件后空间没有释放问题
linux删除文件后沒有释放空间 今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [ro ...
- head 命令 读取文件的前n行,默认查看文件的前十行
head 命令 读取文件的前n行 默认查看文件的前十行 head /etc/passwd # 默认查看文件的前十行 /etc/passwd # 查看文件的前两行
- Linux 删除文件后空间不释放【原创】
删除MySQL备份文件后,查找文件所在目录发现文件已经备删除了,但是空间没有释放,还是83% 解决方法: lsof|grep -i delete 发现进程还在,杀掉进程 kill -9 5377 再次 ...
- linux删除N天前的文件
列出一天之前的文件的属性用下面的命令:find . ! -mtime -1 -print |xargs ls -lfind . -mtime +1 要删除文件的话用下面的命令:find . ! -mt ...
- Linux 删除文件夹和创建文件的命令
删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 删除文件使用实例: rm -f /var/log ...
随机推荐
- flask建表遇到的错误: flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes')
error:flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specifie ...
- java.io.IOException: Premature EOF
http访问第三方系统的接口时,小概率抛出下面的异常: java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStrea ...
- 【异常】java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
异常原因:没有指定数据精度导致数据运算无法正常结算 如执行下面的除法: ).divide(BigDecimal.valueOf()).intValue(); 指定精度后就可以了: ).divide(B ...
- LINUX基础学习之基础命令(2)--2019-11-18
1.ls :命令(list):列出指定目录下的内容 用法:ls [选项] [文件名...] [root@Redhat-7-43 ~]# which ls alias ls='ls --color=a ...
- httprunner运行报错问题:base url missed
在httprunner运行报错问题 代码书写: 当此段yml文件运行时会出现一下错误 在出现此错误时,为base_url的格式出现错误,只需修改base_url的位置 修改位置后运行yml文件 运行成 ...
- 定时任务工具Linux crontab命令详解
crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟 日志文件: ll /var/log/cron* 编辑文件: vim /et ...
- jQuery和使用oninput事件
- c语言实现基本的数据结构(五) 单链队列
#include <stdio.h> #include <tchar.h> #include <stdlib.h> #define MaxQueueSize 100 ...
- NLP文本分类方法汇总
模型: FastText TextCNN TextRNN RCNN 分层注意网络(Hierarchical Attention Network) 具有注意的seq2seq模型(seq2seq with ...
- javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.qingmu.Customer
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity pas ...