在偶数行中计算 b 或 B

Ole*_*lek 7 awk

我需要计算在 file.txt 的偶数行中出现字母 'b' 或 'B' 的次数,例如对于 file.txt 像:

everyB or gbnBra
uitiakB and kanapB bodddB
Kanbalis astroBominus
Run Code Online (Sandbox Code Playgroud)

我得到了第一部分,但我需要数这些 b 或 B 字母,但我不知道如何将它们一起数

awk '!(NR%2)' file.txt
Run Code Online (Sandbox Code Playgroud)

Ed *_*ton 7

$ awk '!(NR%2){print gsub(/[bB]/,"")}' file
4
Run Code Online (Sandbox Code Playgroud)


Rav*_*h13 6

您能否尝试以下方法,另一种awk在移动设备上编写的方法将在几分钟内尝试一下,但应该可行。

awk -F'[bB]' 'NR%2 == 0{print (NF ? NF - 1 : 0)}' Input_file
Run Code Online (Sandbox Code Playgroud)

感谢@Ed sir 解决了评论中发现的零匹配问题。


Tom*_*Tom 3

awk '!(NR%2)' file.txt | tr -cd 'Bb' | wc -c
Run Code Online (Sandbox Code Playgroud)

解释:

  • awk '!(NR%2)' file.txt:仅保留 file.txt 中的偶数行
  • tr -cd 'Bb':只保留B和b字符
  • wc -c: 计​​算字符数

例子:

对于下面的文件,结果是 4。

everyB 或 gbnBra
uitiak B和 kanap B  b奇数B
坎巴利斯·星波米努斯