
在前一篇文章《系统入门系列之三:初识bash》中,我带大家初步了解了linux系统中的bash shell,并学习了如何使用vim进行文本编辑和处理。实际上,bash拥有一系列强大的命令,这些命令已经高度集成化,能够完成多种任务,类似于系统中的软件。接下来,我将介绍更多工具命令以及数据的输入与输出,帮助大家更好地处理各种生物信息数据。
——深入Bash
3.工具命令
虽然vim功能强大,但在处理大量文本文档,尤其是大文件(如高通量测序数据)时,一些逐行处理的工具命令更为实用。
⑴选取命令:cut,grep
选取命令可以基于关键字按行搜索,选取包含关键字的行。通常,cut用于剪取(而非删除)标准输出内容(可以理解为屏幕显示内容,来自cat/more/less等),而grep不仅处理标准输出内容,还能处理文件。使用规则如下:
其中grep的参数-i忽略大小写,-v反向选取,-n输出行号,-w匹配整个单词。注意,工具命令中的单引号和双引号有时不能互换。使用示例如下:
使用–color=auto参数可以将关键字以不同颜色标识:
⑵排序命令:sort,uniq,wc
sort可以根据数据类型进行排序,uniq可以合并相同数据类型并计算数量,wc可以计算文件的字符数、行数等信息。使用规则如下:
其中-f忽略大小写,-b忽略前导空格,-M按月份排序,-n纯数字排序,-r反向排序,-u相同数据合并到同一行,-t指定分隔符,默认为空格(若为tab需转义:-t $’\t’),-k指定排序标准的字段范围,默认从行首开始排序。
其中-i忽略大小写,-c对相同数据进行计数。
其中-l列出行数,-w列出字数,-m列出字符数。排序和计数的具体使用示例如下:
计算文件的整体数据:
需要注意的是,不同语系下的排序顺序可能不同,例如在en_US.UTF-8中,字母无论大小写均按字母表顺序排序,而在C语言中,大写字母排在小写字母之前:
计算当前路径下的文件数量:
⑶字符转换命令:tr,col,expand
tr命令可以删除或替换文本信息,col和expand命令可以将tab键转换为空格键。使用规则如下:
tr命令可以处理标准输出内容,其中-d删除指定内容,-s替换指定内容。例如,将“:”替换为“;”的方法如下:
将所有小写字母替换为大写字母并保存:
col命令可以处理标准输出内容,其中-x将tab键转换为等效的空格键。使用示例如下:
expand命令可以处理标准输出内容,其中-t后面跟随数字,通常一个tab键可以用8个空格键替换。使用示例如下:
⑷整合切割命令:join,paste,split
join命令可以将具有相同数据的两个文件整合在一起,paste命令将两个文件的行并列并以tab分隔,split命令可以根据大小或行数将大文件切割成小文件以便于复制。使用规则如下:
join命令可以处理文件内容并转换为标准输出,其中-t后面跟随分隔符,默认是空格或tab,-i忽略大小写,-1后面跟随数字,表示第一个文件以一行的第几个字段为关键字,默认为行首,-2表示第二个文件以一行的第几个字段为关键字。使用示例如下:
paste命令可以按行将两个文件整合为一个文件,而不需要按照关键字。其中-d后面为分隔符,默认为tab。使用示例如下:
split命令可以直接切割文件数据,其中-b后面加要切割成的文件大小,可以直接写字节数或使用k、m单位,-l后面加要切割成的文件行数,sfile为小文件的前导名,命令会自动添加后缀区分。使用示例如下:
往期Linux系统入门系列文章:
Linux系统入门系列之一
Linux系统入门系列之二
Linux系统入门系列之三:初识BASH
以上就是Linux系统入门系列之四:命令的详细内容,更多请关注php中文网其它相关文章!