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 行