linux下打乱文本行序、文本分割与文本合并

来源:互联网 发布:unity3d 人物移动跳跃 编辑:程序博客网 时间:2024/06/02 02:30

一、打乱文本行序

linux下,将train.txt按行打乱,每行内容则保持不变,直接将输出写入新的文本train_rand.txt,命令:

shell copy
  1. sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}' train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' > train_rand.txt  

srand(); rand()在awk内获取随机数
gsub替换文本


二、文本分割

将一个大文本拆分为几个小文本可以用命令split:

split -l n 原始文件 拆分后文件名前缀

最后一个文件的行数没有n行则以剩余行数进行分配,比如有一个名为train.txt的文件,公有210行,进行拆分:

拆分后会生成三个文本,最后一个文本仅有10行

shell copy
  1. split -l 100 train.txt train_split

三、文本合并

将几个文本train_1.txt train_2.txt train_3.txt合并为一个 train.txt可以用命令:

shell copy
  1. cat train_1.txt train_2.txt train_3.txt > train.txt