如何在Linux中随机化文本文件的列

时间:2015-05-15 13:52:44

标签: linux sorting text

我想获取一个文本文件,并为每一行随机化单词/列。这些文件可能包含数百万行,因此效率非常重要。我尝试过谷歌路线,但我发现的一切都与随机排序而不是列相关。

例如,使用这样的简单文件(我会使用数字,但它们可能是单词):

111 222 333 444 555
555 666 777 888 999 000
000 333 555 777 

输出可能如下所示:

222 111 555 444 333
777 555 666 000 999 888
777 333 000 555

1 个答案:

答案 0 :(得分:0)

Perl救援:

perl -MList::Util=shuffle -lne 'print join " ", shuffle split' < input.txt > output.txt
  • -lprint
  • 之后添加换行符
  • -n逐行处理输入
  • split在空格上分割输入行
  • shuffle(来自List::Util)随机播放列表
  • join " "从列表中创建一个字符串,在成员之间放置一个空格。