• ベストアンサー

行ごとに文字列をカウント

以下のような巨大なタブ区切りテキストファイルがあります。 <input.txt> A1 1 2 3 4 A2 none 2 4 6 A3 none none none 1 A4 none none none none .... このファイルの行ごとに"none"の数をカウントさせてout.txtファイルを作りたいです。 <out.txt> 0 1 3 4 .... perlやruby、pythonなどでできる方法が教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

色んな方法あるだろうけど perl -ne '$n=0; /\bnone\b(*SKIP)(?{$n++})(*FAIL)/; print "$n\n"' input.txt

その他の回答 (1)

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.1

perlやruby、pythonではありませんがwin10標準搭載のpowershellでは下記の通りになります。 foreach ($i in Get-Content e:\input.txt) { ($i | Select-String -pattern "none" -AllMatches).matches.count} input.txtの各行を読んで指定文字列の出現回数を取得しています。 実行結果は添付画像参照。