返回列表 发帖

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

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

如何用TCL实现统计文件中某字符串的个数,求助大神指点

example:
regexp -all  "abc"  "abcdefgabcefeabc"
=》 3

TOP

感谢万分

TOP

回复 2# darrenxu


   可以字串A跟某個文件檔案比對的嗎???
我的想法是:
set filein   [open report.txt r]
regexp -all "A" $filein


其中report.txt內容是
test
test
A
B


但比對出來是0,要如何才能真正比對正確次數

TOP

回复  darrenxu


   可以字串A跟某個文件檔案比對的嗎???
我的想法是:
set filein   [open report.t ...
tezhi 发表于 2018-5-16 09:11


open只是打开文件, 没有把内容读进来;写个循环gets每一行, 然后把每行匹配到的单词个数+起来就行了
  1. set b 0
  2. set cc "test02"
  3. set f [open /xxxxxxxxxxxxx/abc r]
  4. while { [ gets $f line ] > -1 } {
  5.     echo $line
  6.     set a [regexp -all $cc $line]
  7.     set b [expr $b +$a]
  8. }
  9. puts "b= $b"
  10. close $f
复制代码

TOP

good point

TOP

回复 5# rioshiina
非常感謝您的指導,讓我發現我的錯誤,也測試OK了,謝謝~~~
以下是我的程式(讓大家學習,若有不足的地方,請多包含)
set fileout2     [open total_report.txt w]
#開啟檔案,寫入用

set b 0
#設定變數b
set text "RUN ALL PATTERN FINISH ERROR"
#設定變數text
SET filein2      [open error_report.txt r]
#開啟檔案,讀取用
while {[gets $filein2 line] > -1} {
#循环gets每一行

echo $line

set aaa  [regexp -all $text $line]
#比對字串

set b     [expr $b + $aaa]
#比對到的單詞個數+1

puts $fileout2 $line
#將每一行寫入到total_report.txt
}
puts $fileout2 "total error Nob"
#比對到的總數寫入到total_report.txt最後一行(觀察有沒有跑完全部條件及錯誤)

close $filein2
close $fileout2

TOP

回复 4# tezhi

set filein   [open report.txt r]
regexp -all "A" [ read $filein ]

没这么麻烦, 改一点就可以

TOP

回复 8# darrenxu

感謝您的指導,讓我學習到了新的指令用法,以下是我寫的測試程序(供大家研究,若有不週全的地方,請包含)。
set fileout2 [open total_report.txt w]            #建立新檔案,寫入用
set text "RUN ALL PATTERN FINISH ERROR"  #建立變數text,寫入一字串
set filein2   [open report.txt r]                     #讀取檔案
fcopy $filein2 $fileout2                                #讀取的檔案複製寫入到新檔案
close $filein2                                              #關閉讀取

set filein2   [open report.txt r]                     #讀取檔案
set b [regexp -all $text [ read $filein2 ]]       #比對檔案中的字串,將比對次數寫入到變數
puts $fileout2 "total error Nob"                 #寫入一字串到新檔案
close $filein2                                              #關閉檔案
close $fileout2                                            #關閉檔案

TOP

返回列表

站长推荐 关闭


示波器相关有奖问答(5个小题,有机会获得精品图书),奖励300信元!

示波器相关有奖问答(5个小题,有机会获得精品图书),奖励300信元!


查看