与えられた行数の後に行をランダムに選択したいと思います。たとえば、これは私の入力です。
8 blue
8 red
8 yellow
8 orange
3 pink
3 white
3 cyan
3 purple
1 magenta
1 black
1 green
1 brown
4行ごとにランダムに1行を選択すると、私の出力は次のようになります。
8 orange
3 pink
1 green
私が思いついた最高は次のとおりです。
awk '!(NR%4){a=NR+4};NR<=a|"shuf -n 1"'
しかし、うまくいきません。
ベストアンサー1
GNU実装でsplit
注文する:
split -l 4 --filter='shuf -n1' inputfile
-l N
-N
出力ファイルあたりのライン/レコードの配置--filter=COMMAND
- シェルに書き込むCOMMAND
ファイル名は次のとおりです。$FILE