繁体   English   中英

使用bash计数文件中带有空格的模式的出现

[英]Count occurences of pattern with whitespaces in a file using bash

作为标题建议,我想算一下涉及空格或制表符的模式的出现次数。 我努力了:

grep -o ' 2L ' file | wc -l

grep -o '\s2L\s' file | wc -l

但它打印的数字(仅1个)比

grep -o 2L file | wc -l

打印14567。模式[space]2L[space]频繁出现在文件中。 你的灵魂?

在这里,我展示了cat file输出的第一行: 2L^Isplign_na_dbEST_ncbi^Imatch^I16299682^I16299851^I.^I-^I.^IID=Splign:0568174_na_dbEST_ncbi;Name=RP003180722.5prime-GH911198-na_dbEST_ncbi_20090309-splign;program=splign;programversion=1.0;sourcename=na_dbEST_ncbi;target_type=EST;Target=GH911198 1 171 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I100^I-^I.^IName=:ncbi_2178736;Parent=Splign:0568071_na_dbEST_ncbi;target_type=EST;Target=GH773194 1 170 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I100^I-^I.^IName=:ncbi_2178839;Parent=Splign:0568174_na_dbEST_ncbi;target_type=EST;Target=GH911198 1 171 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I99.41^I-^I.^IName=:ncbi_2178729;Parent=Splign:0568064_na_dbEST_ncbi;target_type=EST;Target=GH807525 1 170 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I99.41^I-^I.^IName=:ncbi_2178751;Parent=Splign:0568086_na_dbEST_ncbi;target_type=EST;Target=GH890956 1 178 +$ 2L^Isplign_na_dbEST_ncbi^Imatch^I16299682^I16299850^I.^I-^I.^IID=Splign:0568097_na_dbEST_ncbi;Name=RP003087707.5prime-GH857137-na_dbEST_ncbi_20090309-splign;program=splign;programversion=1.0;sourcename=na_dbEST_ncbi;target_type=EST;Target=GH857137 4 172 +$ 2L^Isplign_na_dbEST_ncbi^Imatch^I16299682^I16299851^I.^I-^I.^IID=Splign:0568174_na_dbEST_ncbi;Name=RP003180722.5prime-GH911198-na_dbEST_ncbi_20090309-splign;program=splign;programversion=1.0;sourcename=na_dbEST_ncbi;target_type=EST;Target=GH911198 1 171 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I100^I-^I.^IName=:ncbi_2178736;Parent=Splign:0568071_na_dbEST_ncbi;target_type=EST;Target=GH773194 1 170 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I100^I-^I.^IName=:ncbi_2178839;Parent=Splign:0568174_na_dbEST_ncbi;target_type=EST;Target=GH911198 1 171 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I99.41^I-^I.^IName=:ncbi_2178729;Parent=Splign:0568064_na_dbEST_ncbi;target_type=EST;Target=GH807525 1 170 +$ 2L^Isplign_na_dbEST_ncbi^Imatch_part^I16299682^I16299851^I99.41^I-^I.^IName=:ncbi_2178751;Parent=Splign:0568086_na_dbEST_ncbi;target_type=EST;Target=GH890956 1 178 +$ 2L^Isplign_na_dbEST_ncbi^Imatch^I16299682^I16299850^I.^I-^I.^IID=Splign:0568097_na_dbEST_ncbi;Name=RP003087707.5prime-GH857137-na_dbEST_ncbi_20090309-splign;program=splign;programversion=1.0;sourcename=na_dbEST_ncbi;target_type=EST;Target=GH857137 4 172 +$

一部分输出less

##gff-version 3
##sequence-region 2L -204333 23011544
##species  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=7227
##genome-build FlyBase r5.21
2L      FlyBase chromosome_band -204333 1326937 .       +       .       ID=band-21_chromosome_band;Name=band-21
2L      FlyBase chromosome_band -204333 22221   .       +       .       ID=band-21A_chromosome_band;Name=band-21A
2L      FlyBase chromosome_band -204333 -153714 .       +       .       ID=band-21A1_chromosome_band;Name=band-21A1
2L      FlyBase breakpoint      -204333 -204333 .       .       .       ID=Df(2L)ED50001:bk1_breakpoint;Name=Df(2L)ED500

看起来您在行首处有样式2L ,然后有一个制表符。

您可以使用以下简单的awk来获取计数:

awk '$1 == "2L"{++c} END{print c}' file

使用grep它将是:

grep -c '^2L[[:blank:]]' file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM