LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 868|回复: 4

求一个将文本乱序的方法

[复制链接]
发表于 2010-9-12 19:02:17 | 显示全部楼层 |阅读模式
求一个程序,或脚本,或vim宏,可以完成以下任务:

有一文本,每3行一组,如下:
a1-----
a2-----
a3-----
b1-----
b2-----
b3-----
...
现在我想把a、b……的顺序打乱,但每组内3行的顺序不变。

大家能不能给个办法,或指点一下去哪里问?
发表于 2010-9-12 20:22:28 | 显示全部楼层
把a、b、c……分别对应1、2、3……,然后把数字乱序,然后对应数字提取对应的行,并同时提取接下来的两行即可?

BTWZ发错版块了?
回复 支持 反对

使用道具 举报

发表于 2010-9-13 15:43:10 | 显示全部楼层
perl写个脚本吧
hash of array
randomize hash key
then print the hash out in randomized order
回复 支持 反对

使用道具 举报

发表于 2010-9-14 18:08:44 | 显示全部楼层
#!/usr/bin/perl

use List::Util qw(shuffle);

my @text = <>;
print @text[$_ .. $_ + 2] for shuffle grep { not $_ % 3 } 0 .. $#text;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-14 18:58:36 | 显示全部楼层
多谢两位的回复,我由于不会编程,最终使用vim进行格式处理后导入oocalc将之乱序。

也试了用mathematica,也要先进行格式预处理。

看来得学一门编程语言了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表