我希望使用awk随机将一个文件按80/20分割。
我已经阅读并尝试了在这里找到的选项,其中提出了类似以下的建议:
我已经阅读并尝试了在这里找到的选项,其中提出了类似以下的建议:
$ awk -v N=`cat FILE | wc -l` 'rand()<3000/N' FILE
如果您需要随机选择,那么它非常有效。
然而,是否可能修改此awk以将一个文件分成80/20(或其他比例)的两个文件?
if random(100) < 80 then write_to_file1 else write_to_file2
的模式。如果你需要精确的分割,那么你可能需要完全打乱文件中的行,然后进行切割... - twalbergif...then...else
结构...awk
、bash
、zsh
、perl
、python
、ruby
、lua
、C
、C++
、Fortran
、Ada
、Cobol
等许多语言都可以满足这个最低门槛。我的原始评论只是展示了与语言无关的伪代码模式 - 将其翻译成您选择的语言应该相当简单... - twalberg