【问题标题】:grep -c value NH:i:1 only for every line in file, not also NH:i:12grep -c value NH:i:1 仅适用于文件中的每一行,不适用于 NH:i:12
【发布时间】:2013-11-20 02:09:36
【问题描述】:
cat samtry.txt | grep -c NH:i:1

请参阅下面的三行示例。粗体信息很重要

HWI-ST697:178:D1U9CACXX:1:2111:12787:5687   153 scaffold_1  33005   50  101M    *   0   0   GACTAAGGAAGTCATCTGCAGTGCCCCTTGCACTTCCTAATGGGACTTTCCCTGGTTGACTATTCTTACTATGAGAACAATGAGCACCAGCTTCATTCACA   DCDDDDDDDDDDDEEEEEEEEFGHGJIHGHFHJIJIJJIJJJJIHJJIJIIIFJJIGGGIJJJIIJJHIGJIJJJGHJJIJIJIGFJJGHHHHFFFFFCCC   AS:i:-11    XN:i:0  XM:i:2  XO:i:0  XG:i:0  NM:i:2  MD:Z:18T26G55YT:Z:UU    **NH:i:1**
HWI-ST697:178:D1U9CACXX:3:1310:18383:72540  89  scaffold_1  33005   50  101M    *   0   0   GACTAAGGAAGTCATCTGCAGTGCCCCTTGCACTTCCTAATGGGACTTTCCCTGGTTGACTATTCTTACTATGAGAACAATGAGCACCAGCTTCATTCACA   DDDDDDDDDDDDDEEEEEEFFFHHHIIJJIIIJIJJJJJJJJJJHJJJJJJJJJJJJJIJJJJJJJJIJJJIJJIJJJJJJJJIHFJJHHHHHFFFFFCCC   AS:i:-11    XN:i:0  XM:i:2  XO:i:0  XG:i:0  NM:i:2  MD:Z:18T26G55YT:Z:UU    **NH:i:11**
HWI-ST697:178:D1U9CACXX:7:1212:17559:76798  89  scaffold_1  33007   50  101M    *   0   0   CTAAGGAAGTCATCTGCAGTGCCCCTTGCACTTCCTAATGGGACTTTCCCTGGTTGACTATTCTTACTATGAGAACAATGAGCACCAGCTTCATTCACAAG   DDDDDDDDDDDDDEEEECDFFHGHIGJIIHJJJIIJJJJJJHHJJJJJJJJJJJIIIJJJJGIIGBJJIJJJJIJJJJJIHHHFJJIJHHHHGFFFFFCCC   AS:i:-11    XN:i:0  XM:i:2  XO:i:0  XG:i:0  NM:i:2  MD:Z:16T26G57YT:Z:UU    **NH:i:1**

我正在尝试使用 shell 脚本来计算包含以下正则表达式 NH:i:1 的制表符分隔文件(测试文件:samtry.txt,包含要测试的 10 行)中的所有行 问题当然是我得到了我想要的信息;但它也计算具有以下结果的行:NH:i:1x(其中 x 是任何可能的数字:0-9) NH:i:x 的位置(x = 直到 50 左右的任何数字)在文件的每一行中的 20 上,它不是该行的最后一个位置。每行有 23 个“位置”。

有谁知道如何使用 grep 或其他工具来做到这一点?

我有大约 100 个文件,每个文件的大小约为 3GB,我不知道如何解决这个问题

我希望我提供足够的信息,我很高兴每个答案

【问题讨论】:

标签: regex linux bash grep


【解决方案1】:

试试grep 带字边界:

grep -c '\<NH:i:1\>' samtry.txt 

grep -w:

grep -wc 'NH:i:1' samtry.txt 

【讨论】:

  • 感谢您的帮助! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2015-10-09
  • 2013-07-08
相关资源
最近更新 更多