❶ 请问linux如何提取特定行数据(提取两个关键词行之间的行)
❷ linux取出某几行
一、从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
二、显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
三、用sed命令
sed -n '5,10p' filename 这样就可以只查看文件的第5行到第10行。
❸ linux:文本处理系列-1.行截取
(自己)常用的文本文件的行处理命令
示例文件: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){print}else{print 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++}END{print sum,sum/n}'
(linux 一行命令计算速度比Python快,简单计算喜欢用linux命令)
记得随时整理使用过的命令,没学过linux,靠着各种帖子,随时需要随时补给,有点懒。
❹ linux 下怎么随机去1-39博客
在shell中有一个环境变量RANDOM,它的范围是0--32767
如果我们想要产生0-25范围内的数,如下:
$RANDOM%26
用这个环境变量对26取模,就可以得到最小是0,最大是25的数了。
如果想得到1--68范围内的数,可以这样
$RANDOM%68+1,
前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。
如果想得到6--87范围内的数。可以这样
$RANDOM%82+6,
前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了。
❺ linux取出某几行
一、从第3000行开始,显示1000行。即显示3000~3999行x0dx0acat filename | tail -n +3000 | head -n 1000x0dx0a 二、显示1000行到3000行x0dx0acat filename| head -n 3000 | tail -n +1000x0dx0a 注意两种方法的顺序x0dx0a 分解:x0dx0a tail -n 1000:显示最后1000行x0dx0a tail -n +1000:从1000行开始显示,显示1000行以后的x0dx0a head -n 1000:显示前面1000行x0dx0a 三、用sed命令x0dx0a sed -n Ƌ,10pfilename 这样就可以只查看文件的第5行到第10行。
❻ linux中如何提取文件中特定的行
cat file1 file2 |sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-
如果你的文件每行都是维一的可以这样处理.
grep -v 后面的 " 2 " 可以按着你的实际情况前面多加几个空格.
❼ 在linux下如何提取指定字符串的几行
使用awk好像有此功能可以截取特定的行
^begin指的是以begin开头的行
一直到
^end开头的行
awk "^begin","^end"{print $0} /path/file
/path路径 /file即为文件名
如果想了解更多功能的话 网络awk吧呵呵
❽ Linux shell怎么从20W数据中随机的抽取2W
#!/bin/bash
sort -R a.txt | head -20000
##
sort随机排序,然后取前20000,实现出来就是随机抽取20000.