为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白板的微信 2019-10-24 15:06:30
我想随机调整文本文件的行并创建一个新文件。该文件可能有数千行。我怎样才能做到这一点与cat,awk,cut等?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您可以使用shuf。至少在某些系统上(在POSIX中似乎没有)。

正如jleedev指出的那样:sort -R也可能是一个选择。至少在某些系统上;好吧,你知道了。有人指出,这sort -R并不是真正的洗牌,而是根据其哈希值对项目进行排序。

[编者注:除了重复的行/排序键总是彼此相邻结束之外,sort -R 几乎都改组了。换句话说:只有使用唯一的输入行/键,它才是真正的随机播放。确实,输出顺序是由哈希值确定的,但随机性来自选择随机哈希函数 -参见手册。


查看完整回答
反对 回复 2019-10-24
?
呼如林

TA贡献1798条经验 获得超3个赞

Perl单线将是Maxim解决方案的简单版本


perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' < myfile


查看完整回答
反对 回复 2019-10-24
  • 3 回答
  • 0 关注
  • 549 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信