参考:生信技能树
统计readme.txt wc readme.txt
5行, 29单词, 206个字符
配合管道符| wc -l 只统计行数
取出Data目录下example.gtf文件,
管道符传递 |,
文本切割,输出列-f, 第1列和3到5列:
less -S Data/example.gtf | cut -f 1,3-5
取出Data目录下example.gtf文件,
管道符传递 |,
文本切割,分隔符是'h',切开后 取出第一列:
less -S Data/example.gtf | cut -d 'h' -f 1
第一列如chr1, 按h切开是 c 和r1,取第一列,得到c
取出Data目录下example.gtf文件,
管道符传递 |,
sort排序,指定按第3列排序,
管道符传递 |,
less -S 单行显示:
less -S Data/example.gtf | sort -k 3 | less -S
显示效果
如果对第4列排序
会有问题,它是按字典顺序排的,不是按数字大小
需要写成
less -S Data/example.gtf | sort -n -k 3 | less -S
有个bug,只能去相邻两行重复, 如第1,2,4相同,第4行去不掉
所以经常搭配sort排序使用, 把重复行排在一起,再去重
查看example.gtf文件第3列, sort排序 (默认升序):
less -S Data/example.gtf | cut -f 3 | sort
再去重
less -S Data/example.gtf | cut -f 3 | sort | uniq
如果想要统计重复次数
less -S Data/example.gtf | head -10 | cut -f 3 | sort | uniq -c
注意:不排序,去重就去不干净
先创建一个file文件
合并 file 和 readme.txt
paste file readme.txt (之间制表符)
两个文件行数不一样,不会像R一样循环补齐
按分隔符.合并
paste -d '.' file readme.txt
-s参数 按行合并
paste - - 用法
新建一个file,是1到10 seq 10 >file
paste - - 形成2列,横向填充
paste - - - 形成3列,横向填充
把a替换成A tr 'a' 'A'
-d删除指定字符 (说是用的少,有更推荐的其他命令)
注意:上面我们都是修改打印到屏幕上文本, 用cat,所以源文件并没有修改
练习7
1。用 less 查看 example.gtf,然后管道符传递给wc
wc是统计
2。截取 example.gtf 第 9 列的内容
less -S Data/example.gtf | cut -f 9 | less -S
3。在第2步的基础上截取分号分割的第1列
less -S Data/example.gtf | cut -f 9 | cut -d ';' -f 1
按';'分割 cut -d ';'
取第1列 -f 1
4。在第3步的基础上排序、去重复并统计
less -S Data/example.gtf | cut -f 9 | cut -d ';' -f 1 | sort
排序后相同行就排在了一起
接着去重,顺便统计一下
less -S Data/example.gtf | cut -f 9 | cut -d ';' -f 1 | sort| uniq -c
5。在第4步的基础上,将空格替换成制表符 \t
less -S Data/example.gtf | cut -f 9 | cut -d ';' -f 1 | sort | uniq -c | tr ' ' '\t'
替换tr