linux - 如何在每次 grep 找到某些东西时增加变量的值

标签 linux shell grep

假设您正在将一个文件传递给 grep word 并想找出文件中 word 的出现次数。如何在 grep 工作时 增加变量的值?

因此,例如,如果 word 出现了 3 次,我希望输出如下

1
2
3

打印在 stout 上(或保存到变量中)。

最佳答案

这个怎么样:

$ cat file
word
bird
is
this
word
word word word

$ fgrep -o word file | awk '{print NR}'
1
2
3
4
5

如果您只想计算有匹配项的行数而不是每个匹配项,则删除 -o 选项:

$ fgrep word file | awk '{print NR}'
1
2
3

如果您只想将总计数保存到一个变量中:

$ count=$(fgrep -o word file | wc -l)

$ echo $count
5

$ count=$(grep -c word file)

$ echo $count
3

增量变量:

#/bin/bash

while read line; do 
    fgrep -q word <<< "$line" && ((count++)) 
done < file

关于linux - 如何在每次 grep 找到某些东西时增加变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990435/

相关文章:

c - 共享内存未同步更新

linux - 以不同用户身份运行钥匙串(keychain)

bash - 将 cat/grep/arguments 通过管道传输到 bash 脚本中的变量中

linux - 使用 sed 获取日期

c - 使用 realloc() 会在传递特定内存值后导致段错误

linux - 如何在 bash 脚本中获取控制台输入以使用 SSL?

shell - 具有历史记录的 zsh 绑定(bind) key

mysql - 使用 phpMyAdmin 在 Shell 上连接

bash - 我怎样才能在 Bash 中进行 float 比较?

linux - 如何在类似字典的文件上使用 grep