ファイルやストリームからサンプルを取得しますか?

ファイルやストリームからサンプルを取得しますか?

コマンドラインのストリームからサンプルをフィルタリングするユーティリティはありますか?

  • ファイルの100行ごとに印刷するか、
  • 確率0.01でファイルの1行を印刷するか、
  • このようなアルゴリズムで貯水池サンプリング

更新:これまでに見つけたものは次のとおりです。

  • ファイルの100行ごとに印刷します。sed -n '0~100p'

ベストアンサー1

(GNU)awkを使った簡単な解決策:

100個それぞれ(100で割ることができる数字のある行):

do_something | awk 'NR % 100 == 0'

または疑似ランダムに:

do_something | awk 'rand() < 0.01' 

BEGIN{ srand() }この数字は正確に一致しない可能性があり、各実行ごとに新しいシードを初期化するために追加する必要があるかもしれません。

おすすめ記事