首页 > 解决方案 > 使用 wc 计算文本文件中的多个字符 -

问题描述

我在下面有一个给定的文件文本:

aatgcacatgttgcatatcaagtggatatgggtggtggaaaactgtataatggccaagcc
aatttccgtttattatttgacccaactcaagcagtagctattccgagtagcgaatttcca

我正在尝试找到一个grep字数统计wc命令,该命令允许我找到并计算文件文本中的所有“a”和“g”。

我以前尝试过使用

egrep 'a|g' outputSequence.txt|wc -c

我使用'a|g'的是:https ://unix.stackexchange.com/questions/37313/how-do-i-grep-for-multiple-patterns-with-pattern-having-a-pipe-character

我试过使用:

grep -o 'a|g' outputSequence.txt|wc -l

编码:

grep -o 'a|g' outputSequence.txt|wc -l 

输出 0。

我找不到可以让我在每行中同时对 a 和 g 进行 grep 和字数计数的资源。

标签: bashword-count

解决方案


您的方法还可以,需要改进:

  • grep -o 'a|g'搜索a后跟|后跟g. 您需要逃脱|以使其成为 OR。将在输出中grep -o 'a\|g'搜索a字母 OR 字母g 。它将输出由换行符分隔的字符ag
  • 然后用于sort | uniq -c对字母进行排序并打印计数。
  • 不要使用egrep,它已被弃用。改为使用grep -E

命令:

grep -o 'a\|g' outputSequence.txt | sort | uniq -c

应该输出:

 36 a
 26 g

a但也许你想要s 和s的计数之和g,那么你已经足够接近了:

grep -o 'a\|g' outputSequence.txt | wc -l

推荐阅读