一、cut
1.1 软件介绍
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d 一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
1.2 使用案例
代码语言:javascript复制#1 分割文件并输出
cut -d : -f 1,3 /etc/passwd
cut -d: -f 2- /etc/passwd
#2 选取每个文件前两个字符
ls -1 /Data/ | cut -c 1-2
二、sort
2.1 软件介绍
sort 根据命名我们就能知道这个工具的主要作用就是用来排序,对文本文件内的内容进行排序,排序是计算机编程中非常重要的一项工作,排序之后的数据更加具有规律,并且更方便处理。在生物信息分析中排序也是非常重要的工作,我们常常需要根据基因组的坐标位置进行排序,例如在利用短序列比对进行变异检测的过程中,首先就需要进行排序,例如 bwa比对之后,利用 samtools 对 bam 结果进行排序,然后才能进行后续的分析。排序主要可以分为三种情况,第一种是最常见的根据数字大小进行排序,例如根据坐标位置大小进行排序,根据比对的分值大小排序结果;第二种是根据根据字符大小进行排序,比如abcdef 这种顺序,或者根据基因名字进行排序,第三种是给定一个文件,里面包含了指定
的顺序。
sort 命令用于对文本内容进行再排序,语法格式为“sort [参数] 文件名称”。有时文本中的内容顺序不正确,一行行地手动修改实在太麻烦了。此时使用 sort 命令就再合适不过了,它能够对文本内容进行再次排序。这个命令一定要借助于实战一看就懂。
2.2使用案例
代码语言:javascript复制#1 排序
sort scores.txt #默认按第一列排序
cut -A scores.txt #查看有几列,^为制表符,$为结尾
sort -r scores.txt #默认按第一列排序倒序
awk '{print $2,$3}' scores.txt | sort
#2 按第二列数字大小排序
awk '{print $2,$3}' scores.txt | sort -n -k 2
#3 逆序排序
awk '{print $2,$3}' scores.txt | sort -n -r -k 2
#4 计算特异项,类似uniq
awk '{print $2,$3}' scores.txt | sort -u
#5 按多值排序
cat scores.txt | sort -t $'t' -k 2 -k 3
#6 按照第二列中第三个字母排序
cat scores.txt | sort -t $'t' -k 2.3 |head
#7 复杂排序
cat scores.txt | sort -t $'t' -k 2,2 -k 3nr,3
三、uniq
3.1 软件介绍
uniq 是 unique 的意思,和 sort -u 的功能差不多,uniq 能够将文件中的重复删除掉,只留下每条记录的唯一值,一般与 sort 命令结合使用。
3.2使用案例
代码语言:javascript复制#1 计算特异
cat scores.txt | cut -f 2 | uniq
#2 计算频数
cat scores.txt | cut -f 2 | uniq -c
cat scores.txt | cut -f 2 | uniq -c | sort -n -k1
#3 找出重复项
cat scores.txt | cut -f 2,3 | uniq -D
#4 忽略固定列
cat scores.txt | uniq -f 1 -D
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
代码语言:javascript复制sx.voiceclouds.cn
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。