我有一个大约1000行的文件,如下所示:
ABC C5A 1
CFD D5G 4
E1E FDF 3
CFF VBV 1
FGH F4R 2
K8K F9F 3
... etc
Run Code Online (Sandbox Code Playgroud)
我想选择100个随机行,但是每个第三列值有10个(所以第3列中所有行的随机10行值为"1",第3列中值为"2"的所有行随机10行,等等).
这可能使用bash吗?
首先grep是具有一定数量的所有文件,将它们洗牌并选择前10个使用shuf -n 10.
for i in {1..10}; do
grep " ${i}$" file | shuf -n 10
done > randomFile
Run Code Online (Sandbox Code Playgroud)
如果您没有shuf,请使用sort -R随机排序:
for i in {1..10}; do
grep " ${i}$" file | sort -R | head -10
done > randomFile
Run Code Online (Sandbox Code Playgroud)