猿问

如何在Unix命令行或Shell脚本中对文本文件的行进行混编?

我想随机调整文本文件的行并创建一个新文件。该文件可能有数千行。

我怎样才能做到这一点与catawkcut等?


白板的微信
浏览 550回答 3
3回答

犯罪嫌疑人X

您可以使用shuf。至少在某些系统上(在POSIX中似乎没有)。正如jleedev指出的那样:sort -R也可能是一个选择。至少在某些系统上;好吧,你知道了。有人指出,这sort -R并不是真正的洗牌,而是根据其哈希值对项目进行排序。[编者注:除了重复的行/排序键总是彼此相邻结束之外,sort -R 几乎都改组了。换句话说:只有使用唯一的输入行/键,它才是真正的随机播放。确实,输出顺序是由哈希值确定的,但随机性来自选择随机哈希函数 -参见手册。

呼如林

Perl单线将是Maxim解决方案的简单版本perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' < myfile
随时随地看视频慕课网APP
我要回答