在前一篇文章《linux系统入门系列之三:初识bash》中,我带大家初步了解了linux系统中的bash shell,并学习了如何使用vim进行文本编辑和处理。实际上,bash拥有一系列强大的工具命令,这些命令已经高度集成化,能够完成多种任务,类似于windows系统中的office软件。接下来,我将介绍更多工具命令以及数据的输入与输出,帮助大家更好地处理各种生物信息数据。
——深入Bash
3.工具命令
虽然vim功能强大,但在处理大量文本文档,尤其是大文件(如高通量测序数据)时,一些逐行处理的工具命令更为实用。
⑴选取命令:cut,grep
选取命令可以基于关键字按行搜索,选取包含关键字的行。通常,cut用于剪取(而非删除)标准输出内容(可以理解为屏幕显示内容,来自cat/more/less等),而grep不仅处理标准输出内容,还能处理文件。使用规则如下:
cut -d '分割字符' -f '范围' cut -c '字符范围' grep -acinvw --color=auto '要选取的内容' '文件名称'
其中grep的参数-i忽略大小写,-v反向选取,-n输出行号,-w匹配整个单词。注意,工具命令中的单引号和双引号有时不能互换。使用示例如下:

使用--color=auto参数可以将关键字以不同颜色标识:

⑵排序命令:sort,uniq,wc
sort可以根据数据类型进行排序,uniq可以合并相同数据类型并计算数量,wc可以计算文件的字符数、行数等信息。使用规则如下:
sort -bfMnrtuk '文件或标准输出'
其中-f忽略大小写,-b忽略前导空格,-M按月份排序,-n纯数字排序,-r反向排序,-u相同数据合并到同一行,-t指定分隔符,默认为空格(若为tab需转义:-t $'\t'),-k指定排序标准的字段范围,默认从行首开始排序。
uniq -ic
其中-i忽略大小写,-c对相同数据进行计数。
wc -lwm '文件或标准输出'
其中-l列出行数,-w列出字数,-m列出字符数。排序和计数的具体使用示例如下:

计算文件的整体数据:

需要注意的是,不同语系下的排序顺序可能不同,例如在en_US.UTF-8中,字母无论大小写均按字母表顺序排序,而在C语言中,大写字母排在小写字母之前:


计算当前路径下的文件数量:

⑶字符转换命令:tr,col,expand
tr命令可以删除或替换文本信息,col和expand命令可以将tab键转换为空格键。使用规则如下:
tr -ds '要删除的内容' '要替换的内容'
tr命令可以处理标准输出内容,其中-d删除指定内容,-s替换指定内容。例如,将“:”替换为“;”的方法如下:

将所有小写字母替换为大写字母并保存:

col -x
col命令可以处理标准输出内容,其中-x将tab键转换为等效的空格键。使用示例如下:

expand -t
expand命令可以处理标准输出内容,其中-t后面跟随数字,通常一个tab键可以用8个空格键替换。使用示例如下:

⑷整合切割命令:join,paste,split
join命令可以将具有相同数据的两个文件整合在一起,paste命令将两个文件的行并列并以tab分隔,split命令可以根据大小或行数将大文件切割成小文件以便于复制。使用规则如下:
join -ti12 file1 file2
join命令可以处理文件内容并转换为标准输出,其中-t后面跟随分隔符,默认是空格或tab,-i忽略大小写,-1后面跟随数字,表示第一个文件以一行的第几个字段为关键字,默认为行首,-2表示第二个文件以一行的第几个字段为关键字。使用示例如下:

paste -d file1 file2
paste命令可以按行将两个文件整合为一个文件,而不需要按照关键字。其中-d后面为分隔符,默认为tab。使用示例如下:

split -bl file sfile
split命令可以直接切割文件数据,其中-b后面加要切割成的文件大小,可以直接写字节数或使用k、m单位,-l后面加要切割成的文件行数,sfile为小文件的前导名,命令会自动添加后缀区分。使用示例如下:

往期Linux系统入门系列文章:
Linux系统入门系列之一
Linux系统入门系列之二
Linux系统入门系列之三:初识BASH
以上就是Linux系统入门系列之四:工具命令的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号