texファイルの本文の行数を数える

ruby -e 'pattern=/.*(\.tex)$/; comment=/ *[%\\]/; sum=0; for i in 0..5 do Dir.glob("*/"*i+"*").delete_if{|n|!(n =~ pattern) or File::ftype(n) != "file"}.each{|f| sumf=0; n=open(f).read.split(/[\r\n]/).delete_if{|l|l =~ /[\\%]/}.each{|l| sumf+=l.split(//u).size}; puts "#{f}\t#{sumf}"; sum+=sumf} end; puts "totalwords #{sum}"'

最初のpatternで.texファイルにマッチ、次のcommentで%のコメントと(コメントではないけど本文ではない)\の行を無視するように指定できる

実行したディレクトリから5階層まで掘って合計する。


こんな感じで表示

newclass-plan/1-15.tex  2854
newclass-plan/intro.tex 1095
newclass-plan/newclass-plan.tex 0
totalwords 3949