首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算特定字符串在连续行上的个数

问计算特定字符串在连续行上的个数
EN

Stack Overflow用户
提问于 2017-02-01 03:02:41
回答 3查看 892关注 0票数 0

我对Linux比较陌生,我想使用shell脚本来计算特定字符串在并发文本行中出现的次数。

例如,我有一个日志,其中的数据类似于:

代码语言:javascript
复制
 active node table^M
 -------------------^M
     pkey  vlan  master-s/n  gateway-s/n  gateway-prio      if-name        gateway name   advertised ip
   0x7fff     0         N/A      0xa0600           100          if0      DA2WIBL1-25-io   10.126.144.49
   0x7fff     0         N/A      0xa0580           100          if0      DA2WIBL1-31-io   10.126.144.51
   0x7fff     0         N/A      0xa0400           100          if0      DA2WIBL1-28-io   10.126.144.50
 active node table
 -------------------

我想简单地计算包含字符串:'0x7fff'的并发行数,并将其写入一个文件。

有没有人知道如何明智地解决这个问题?我知道一些shell,expect和类似的脚本语言。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-01 03:14:38

如果您所说“连续”指的是“并发”,那么通常使用uniq命令对连续的行进行分组,使用uniq -c命令同时对它们进行分组和计数:

代码语言:javascript
复制
cat logfile | awk '{print $1}' | uniq -c | grep '0x7fff' | awk '{print $1}'

给定日志文件的内容如下:

代码语言:javascript
复制
0x7fff     0         N/A      0xa0600           100          if0      DA2WIBL1-25-io   10.126.144.49
0x7fff     0         N/A      0xa0580           100          if0      DA2WIBL1-31-io   10.126.144.51
0x7fff     0         N/A      0xa0400           100          if0      DA2WIBL1-28-io   10.126.144.50
0x8b5f     0         N/A      0xa0600           100          if0      DA2WIBL1-25-io   10.126.144.49
0x7fff     0         N/A      0xa0400           100          if0      DA2WIBL1-28-io   10.126.144.50

,上述命令将产生以下输出:

代码语言:javascript
复制
3
1
票数 1
EN

Stack Overflow用户

发布于 2017-02-01 03:07:52

grep "0x7fff" logfilename.log | wc -l

上面的代码可以帮助找到模式或字符串valye "0x7fff“出现的行数。

票数 0
EN

Stack Overflow用户

发布于 2017-02-01 03:29:28

代码语言:javascript
复制
$ awk -v key='0x7fff' '{if($1==key) c++; else {print c; c=0}} 
                   END {print c}' file

使用@gudok的示例进行测试

代码语言:javascript
复制
3
1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41965485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档