生信喵 发表于 2022-7-5 11:02:03

cut-sort-uniq

本帖最后由 生信喵 于 2022-7-5 11:13 编辑

一、cut
1.1 软件介绍
       cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
       -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
       -c :以字符为单位进行分割。
       -d :自定义分隔符,默认为制表符。
       -f :与-d 一起使用,指定显示哪个区域。
       -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

1.2 使用案例
#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使用案例

admin 发表于 2022-7-5 11:17:52

#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

admin 发表于 2022-7-5 11:18:43

三、uniq
3.1 软件介绍
       uniq 是 unique 的意思,和 sort -u 的功能差不多,uniq 能够将文件中的重复删除掉,只留下每条记录的唯一值,一般与 sort 命令结合使用。
3.2使用案例
#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

页: [1]
查看完整版本: cut-sort-uniq