cut-sort-uniq

2022-10-25 19:26:38 浏览数 (3)

一、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

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞