前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生物信息重要的文本处理命令(实例命令及解释)

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

作者头像
生信交流平台
发布2020-08-31 16:40:08
1.2K0
发布2020-08-31 16:40:08
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档