linux删除大文件的前n行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux删除大文件的前n行相关的知识,希望对你有一定的参考价值。

参考技术A linux删除大文件的前n行

在数据挖掘中我们经常会增量更新训练日志,需要删除前n行的过期数据,直接用sed命令比较慢,谷歌了一下,发现有个奇技淫巧:

tail -n +3 old_file > new_file

mv new_file old_file

这样就删除了前2行,速度要比sed命令快

linux:文本处理系列-1.行截取

参考技术A (自己)常用的文本文件的行处理命令

示例文件:test.vcf
1、head -n 10 test.vcf
head : 默认是提取文件的前10行,-n 参数可以设定选择文件的前n行

2、tial -n 10 test.vcf
tail : 默认是提取文件的末尾10行, -n 参数可以设定选择文件末尾的n行

3、sed -n '10,20p' test.vcf
sed -n : 随意选择需要查看的行
sed命令是一个面向行处理的编辑器,可以和正则表达式配合使用,附上较全面的sed命令使用教程。
https://man.linuxde.net/sed

4、awk 截取行的指定长度字符串
less test.gz |awk 'if(NR%2==1)printelseprint substr($1,1,75)' | gzip -c > test.part.gz
说明:对test.gz文件指定行截取75bp,原来是150bp

5、对n行的第三列求和,求平均值
grep -v ‘#’ test.vcf |sed -n '20,35p' |awk -F '\t' 'sum+=$3;n++ENDprint sum,sum/n'
(linux 一行命令计算速度比Python快,简单计算喜欢用linux命令)
记得随时整理使用过的命令,没学过linux,靠着各种帖子,随时需要随时补给,有点懒。

以上是关于linux删除大文件的前n行的主要内容,如果未能解决你的问题,请参考以下文章

Python Flask:只需上传大文件的前 n 行,然后停止上传,继续前 n 行

Windows系统命令行大汇总+骚操作合集

删除文件中的前n行(带有许多“奇怪”符号的.zip文件)

linux查找并输出特定行和它的前一行且在后面再输出一个空白行的命令

Linux命令----head

linux复习2:Fedora17系统的安装和删除