生物信息重要的文本处理命令(实例命令及解释)

2020-08-31 16:40:08 浏览数 (1)

linux文本处理命令是一类对文件进行操作的命令,通过使用文本处理命令,可以轻松的对文件进行排序,拆分,合并等操作,熟练掌握文本处理命令,在生物信息文本处理中,有十分重要的意义。

01

cat 查看文件内容命令

以下为最常用的几个命令实例

命令

解释

cat test.txt

获取test.txt所有内容(全部获取)

cat -n test.txt

对输出的所有行编号

cat -b test.txt

对非空输出行编号

cat –s test.txt

去空行,但只能相邻空行,并且保留一个

cat > 1

快速创建文件1,直接输入内容,ctrl c保存并退出

注意事项:

遇到大文件的时候,不要直接cat,因为cat会一直把所有内容打印到屏幕上,造成长时间处于打印状态,如遇到这种情况,连续不间断的敲击ctrl c组合键退出打印状态

相关衍生命令:

cat还有两个常用的相关命令:

1.zcat 查看压缩文件

2.tac 从结尾往上看内容

二.sort 排序命令

对数据的某一列按照文本,数字等排序方法进行排序,也可以进行字符内排序,以下为最常用的几个命令实例

命令

解释

sort A.txt

默认按照-k 1 字符串排序

sort -k 2nr A.txt

按照第二列数字降序

sort –k 2nr –k 3n A.txt

按照第二列数字降序,第三列升序

sort -t $':’

域分隔符的使用(默认空格或者t)

sort -k1.4 -n C.txt

字符内排序

三.uniq 去除重复命令

对相同的行去重复,统计重复,保留重复等,还可指定某一列做为去重复关键字去重复,以下为最常用的几个命令实例

命令

解释

cat x.txt

显示内容

uniq –c x.txt

去重复并且在前显示重复次数

uniq –d x.txt

只显示重复

uniq –cd x.txt

显示重复及重复次数

uniq –u x.txt

显示不重复

uniq –f 1 test.txt

忽略第一列进行去重复

注意事项:

uniq需要配合sort进行使用,把重复的内容排序到一起,以下为最常用的几个命令实例

命令

注释

cat x.txt

显示内容

uniq –c x.txt

去重复并且在前显示重复次数

uniq –d x.txt

只显示重复

uniq –cd x.txt

显示重复及重复次数

uniq –u x.txt

显示不重复

uniq –f 1 test.txt

忽略第一列进行去重复

四.wc 统计命令

统计指定文件中的字节数、字数、行数,并将统计结果显示输出,以下为最常用的几个命令实例

命令

解释

cat test.txt

看看读取的内容

wc –l test.txt

统计行数

wc –c test.txt

统计字节数

wc –L test.txt

打印最长行的长度

五.grep/egrep命令

grep为过滤命令,一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,常用命令如下:

命令

解释

grep '10' test.txt

过滤含有10的行10的行

grep -n '10' test.txt

打印包含10的行和行标10的行和行标

grep -c '10' test.txt

统计包含10的行数10的行数

grep –i 'm' test.txt

打印包含m和M的行m和M的行

grep -iv 'm'

统计不包含m和M的行m和M的行

grep 'energywise' *

在当前目录搜索带'energywise'行的文件'energywise'行的文件'energywise'行的文件'energywise'行的文件

grep -r 'energywise' *

在当前目录及其子目录下搜索'energywise'行的文件'energywise'行的文件'energywise'行的文件'energywise'行的文件

grep一般情况下支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,这条命令和grep -E等价。虽然一般情况下,基本正则表达式就够用了,以下为最常用的几个命令

元数据

意义

范例

^

搜寻以word开头的行。

grep –n ‘^#’ regular.txt #搜寻以#开头的脚本注释行

$

搜寻以word结束的行

grep –n ‘.$’ regular.txt #搜寻以‘.’结束的行

.

匹配任意一个字符

grep –n ‘e.e’ regular.txt #匹配e和e之间有任意一个字符,可以匹配eee,eae,eve,但是不匹配ee。

转义字符。

grep –n ‘.' regular.txt #过滤含有.的行

*

前面的字符重复0到多次

grep –n ‘go*gle’ regular.txt #例如匹配gle,gogle,google,gooogle等等

[list]

匹配一系列字符中的一个。

grep –n ‘g[lf]’ regular.txt #例如:匹配gl,gf。

[n1-n2]

匹配一个字符范围中的一个字符。

grep –n ‘[0-9]’ regular.txt #例如:匹配数字字符

[^list]

匹配字符集以外的字符

grep –n ‘[^o]‘ regular.txt #匹配非o字符

{n1,n2}

前面的字符重复n1,n2次

grep –n ‘go{2,3}gle’ regular.txt #匹配google,gooogle。

<word

单词是的开头。

grep –n ‘<g’ regular.txt #匹配以g开头的单词

word>

匹配单词结尾

grep –n ‘tion>’ regular.txt #匹配以tion结尾的单词

六.sed命令

sed是一个强大的按行处理的命令,常用的命令如下:

命令

注释

sed -n 'p' filename

//输出所有行,等同于cat afile

sed -n '3p' filename

//输出第3行

sed -n '3l' filename

//输出第3行,其中非打印字符以ASCII码表示

sed -n '3,5p' filename

//输出第3~5行

sed -n 'p;n' filename

//输出所有的奇数行,n表示读入下一行文本

sed -n 'n;p' filename

//输出所有的偶数行,n表示读入下一行文本

sed -n '1,5{p;n}' filename

//输出第1~5行之间间的所有奇数行(第1、3、5行)

sed -n '10,${n;p}' filename

//输出第10行至文件尾之间的所有偶数行

sed -n '/xml/p' filename

//输出包含xml的行

sed -n '4,/xml/p' filename

//输出从第4行至第一个包含xml的行

sed -n '/xml/=' afile filename

//输出包含xml的行所在的行号,=用来表示行号

sed -n '/^install/p' filename

//输出以install开头的行

sed -n '/noarch$/p' filename

//输出以noarch结尾的行

sed -n '$p' afile filename

//输出最后一行

sed -n '/bsystemb/p' filename

//输出包含独立单词system的行,b 用来界定单词

七.awk命令

是一个最强大的文本分析工具,以下列常用文本处理的写法:

命令

注释

awk '{print $0}' filename

打印全部

awk '{print $1}' filename

打印第一列

awk '{print $NF}' filename

打印最后一列

awk '/chr13/||/chr23/' filename

过滤含有chr13或者chr23

awk '{if($2>20&&$3>30){print}}' filename

过滤第二行大于20并且第三行大于30的行

awk -F ':' '{print $1}' file

以:作为域分割符,打印第一列

八.cut命令

cut命令命令从文件的列剪切字节、字符、域,并将这些字节、字符,域,输出出来,下面为几个常见的用法:

命令

解释

cut -b 3-5,8

提取第3-5 和第8个字节(bytes)。注意顺序不能写乱

cut –c 3-5,8

提取第3-5 和第8个字符(characters),注意与字节的区别。

cut -d ":" -f 2- B.txt

按:分割域(fields)

九.split命令

split命令可以按照行或者按照字节分割文件,以下列常用文本处理的写法:

命令

解释

split –l 100 file.txt

生成xaa,xab …

split -a 3 -d -l 100 file.txt "file"

生成file000,file001 …

十.paste命令

Paste命令可按列合并命令,可以很轻松的将两个文件按列合并,下面是常见的举例:

命令

解释

paste a.txt b.txt c.txt > all1.txt

将文件a.txt,b.txt,c.txt 按照列合并(列之间为t)

paste -d ':' a.txt b.txt c.txt > all2.txt

将文件a.txt,b.txt,c.txt 按照列合并(列之间为:)

十一.xargs

xargs用作替换工具,读取输入数据重新格式化后输出。Xargs命令常跟管道连用,处理管道中的数据流

命令

解释

cat test.txt | xargs

多行输入单行输出

cat test.txt | xargs -n3

-n选项多行输出

echo "nameXnameXnameXname" | xargs -dX

-d选项可以自定义一个定界符

十二.comm

comm命令比较两个文件的相同和不同,下面为常用的命令举例:

命令

解释

comm1.txt 2.txt

比较两文件的不同,默认输出3列,第一列为1文件中独有的,第二列为2文件中独有的,第三列为两文件共同的

comm -12 1.txt 2.txt

不显示1和2列,即显示两者共有的元素

comm -23 1.txt 2.txt

不显示2和3列,即显示1中独有的

comm -13 1.txt 2.txt

不显示2和3列,即显示1中独有的

comm -3 1.txt 2.txt |sed's/t//g'

求两者并集

注意事项:两个比较的文件需要排序后进行

好了linux常用命令就介绍到这里,按照这些实例好好练习,加上自己的融会贯通,相信你很快就会成为快速文本处理的高手

0 人点赞