文本处理工具之grep

grep是一个文本搜索工具,可以通过正则表达式搜索文本,并把匹配的行打印出来。我们直接通过实例来看看grep的用法。

aa是一个文件,包括4列,基因名,基因所在染色体,基因起始位置和基因终止位置。

cat aa

DDX11L1 chr1 11869 14409

WASH7P  chr1    14404  29570

MIR1302-2HG    chr1    29554  31109

FAM138A chr1    34554  36081

OR4G4P  chr1    52473  53312

OR4G11P chr1    57598  64116

OR4F5  chr1    65419  71585

RP11-34P13.7    chr1    89295  133723

RP11-34P13.8    chr1    89551  91105

CICP27  chr1    131025  134836

AL627309.1      chr1    134901  139379

RP11-34P13.15  chr1    135141  135895

RP11-34P13.16  chr1    137682  137965

RP11-34P13.14  chr1    139790  140339

RP11-34P13.13  chr1    141474  173862

grep "OR4F5" aa        ## 显示aa中包含OR4F5的行

OR4F5 chr1 65419 71585

grep "or4f5" aa         ## 显示aa中包含or4f5的行(大小写敏感,aa中没有or4f5,打印为空)

grep -i "or4f5" aa        ## 显示aa中包含or4f5的行(忽略大小写)

OR4F5 chr1 65419 71585

grep -n "OR4F5" aa        ## 显示aa中包含OR4F5的行,并打印行号

7:OR4F5 chr1 65419 71585

grep -v "OR4F5" aa      ## 显示aa中不包含OR4F5的行

grep -A 2 "OR4F5" aa        ## 显示aa中包含OR4F5的行以及后2行

OR4F5 chr1 65419 71585

RP11-34P13.7    chr1    89295  133723

RP11-34P13.8    chr1    89551  91105

grep -B 2 "OR4F5" aa        ## 显示aa中包含OR4F5的行以及前2行

OR4G4P chr1 52473 53312

OR4G11P chr1    57598  64116

OR4F5  chr1    65419  71585

grep -C 2 "OR4F5" aa        ## 显示aa中包含OR4F5的行以及前后2行

OR4G4P chr1 52473 53312

OR4G11P chr1    57598  64116

OR4F5  chr1    65419  71585

RP11-34P13.7    chr1    89295  133723

RP11-34P13.8    chr1    89551  91105

grep -c "OR4F5" aa        ## 在aa中包含OR4F5的行数

1

grep -l "OR4F5" aa        ## 打印出满足要求的文件名(-l则不显示文件名),适用于搜索多个文件时使用

aa

grep -e "OR4" -e "RP11" aa        ## 多模式匹配

OR4G4P chr1 52473 53312

OR4G11P chr1    57598  64116

OR4F5  chr1    65419  71585

RP11-34P13.7    chr1    89295  133723

RP11-34P13.8    chr1    89551  91105

RP11-34P13.15  chr1    135141  135895

RP11-34P13.16  chr1    137682  137965

RP11-34P13.14  chr1    139790  140339

RP11-34P13.13  chr1    141474  173862

grep -H -e "OR4" aa        ##  每一行都显示文件名(-h则不显示文件名)

aa:OR4G4P chr1 52473 53312

aa:OR4G11P      chr1    57598  64116

aa:OR4F5        chr1    65419  71585

grep -o -e "OR4" aa        ## 只输出匹配的部分

OR4

OR4

OR4

grep -w -e "OR4" aa        ## 只输出匹配OR4的单词,因此输出为空(没有OR4这个单词,只有包含OR4的词)

grep "text" ./ -r        ## 递归搜索当前文件夹,并匹配text

grep "main()" ./ -r --include *.{php,html}        ## 只在目录中所有的.php和.html文件中递归搜索字符"main()"

grep "main()" ./ -r --exclude "README"    ## 在搜索结果中排除所有README文件

grep "main()" ./ -r --exclude-from filelist        ## 在搜索结果中排除filelist文件列表里的文件

当然,grep的强大在于它可以使用正则表达式,将在下面一篇文章中专门来讲。

grep命令_Linux grep 命令用法详解:强大的文本搜索工具

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容