如何使用Red Hat Linux上的标准工具将文件中的行随机化?
我没有shuf命令,所以我要寻找的东西像一个perl或awk一个班轮是完成相同的任务。
shuf
perl
awk
而您可以获得Perl一线服务!
perl -MList::Util -e 'print List::Util::shuffle <>'
它使用一个模块,但是该模块是Perl代码分发的一部分。如果那还不够好,您可以考虑自己动手做。
我尝试将其与-i标志(“就地编辑”)一起使用,以使其编辑文件。该文档表明它应该可以,但是不能。它仍然将改组后的文件显示到stdout,但这一次它删除了原始文件。我建议您不要使用它。
-i
考虑一个shell脚本:
#!/bin/sh if [[ $# -eq 0 ]] then echo "Usage: $0 [file ...]" exit 1 fi for i in "$@" do perl -MList::Util -e 'print List::Util::shuffle <>' $i > $i.new if [[ `wc -c $i` -eq `wc -c $i.new` ]] then mv $i.new $i else echo "Error for file $i!" fi done
未经测试,但有望奏效。