在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2036|回复: 8

[求助] 如何用TCL实现统计文件中某字符串的个数

[复制链接]
发表于 2017-4-20 11:18:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如何用TCL实现统计文件中某字符串的个数
发表于 2017-4-20 11:46:08 | 显示全部楼层
这个应该很简单的, 平时用的是perl 没怎么用tcl
发表于 2017-4-20 13:54:30 | 显示全部楼层
回复 2# 教父


  请问perl 怎么实现?
 楼主| 发表于 2017-4-20 14:13:27 | 显示全部楼层
回复 2# 教父


   prel怎么实现呢 ?》
发表于 2017-4-20 15:24:28 | 显示全部楼层
具体思路如下:
1>打开文件
2>文件的每一行为数组里面的一个元素。比如文件有20行, 每一行就是一个数组元素。
3>打印输入的文件每一行// 这个可有可不有
4>去掉行尾的换行符 // 行尾巴有可能有换行符
5>以空格符划分行里面的每一个字符串,赋予设定的数组。如果一行里面有10个字符串,那么这个数组里面就有10个元素, 比如 what is you name ? 以空格符划分就是有5个元素,
6>设定一个变量,然后统计5里面数组是否匹配你需要统计的字符串,自动加1,在5里面是以空格符作为分隔符的,有可能你需要统计的字符串右面跟有标点符号, 这个你需要匹配符号, 比如 what is you name? 你需要统计 name 这个字符串,这个时候name? 也算一个,你就需要name+匹配符号。
    大体的思路就是这样

open(IN,"<文件名”);//打开文件
@line = <IN>; //文件的行输入
chomp($line);  // 去除输入的文件行尾的换行符
$num =0; //起始行
while($num<=xx) { // 文件的行数-1
           print “@line[$num]”;//打印文件的每一行
              @array = split(" ",@line[$num]);//以空格为分隔符赋予array 数组
                 for(i==0;i<=xxx;i +=1) { //设置变量i,i的最大值为行的最大字符数,这个值你可以设大点
                     ......... // 判断每个字符串是否是你需要统计的字符串,
发表于 2017-4-20 16:21:57 | 显示全部楼层
grep -c 不就可以了?哪有那么复杂额~~~
发表于 2017-4-21 10:14:43 | 显示全部楼层
用shell应该不难解决
发表于 2017-4-21 10:41:24 | 显示全部楼层
当然如楼上所说 grep 也能实现需要的功能,如果你只需要做一次,用grep 肯定来得比写脚本来的快, 如果需要多次的统计, 我想还是脚本来的快点,写一次就一劳永逸了。
 楼主| 发表于 2017-4-21 11:47:18 | 显示全部楼层
回复 5# 教父


   谢谢,受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-16 16:19 , Processed in 0.026791 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表