簡體   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