我有一个.txt文件:
level5:tafekf
level5:tafekg
level5:tafekh
level5:tafeki
level5:tafekj
level5:tafekk
level5:tafekl
level5:tafekm
level5:tafekn
level5:tafeko
level5:tafekp
level5:tafekq
level5:tafekr
level5:tafeks
level5:tafekt
level5:tafeku
level5:tafekv
level5:tafekw
level5:tafekx
level5:tafeky
level5:tafekz
level5:tafela
level5:tafelb
level5:tafelc
level5:tafeld
level5:tafele
level5:tafelf
level5:tafeku
level5:tafekv
level5:tafekw
level5:tafekv
level5:tafekw
我想在linux终端中使用一个命令,例如拆分10次。 所以我希望有10个.txt文件作为输出
的1.txt
level5:tafekf
level5:tafekg
level5:tafekh
2.txt
level5:tafeki
level5:tafekj
level5:tafekk
3.txt
level5:tafekl
level5:tafekm
level5:tafekn
4.txt
level5:tafeko
level5:tafekp
level5:tafekq
5.txt
level5:tafekr
level5:tafeks
level5:tafekt
6.txt
level5:tafeku
level5:tafekv
level5:tafekw
7.txt
level5:tafekx
level5:tafeky
level5:tafekz
8.txt
level5:tafela
level5:tafelb
level5:tafelc
9.txt
level5:tafeld
level5:tafele
level5:tafelf
10.txt
level5:tafeku
level5:tafekv
level5:tafekw
level5:tafeih
level5:tafeii
谢谢。
答案 0 :(得分:2)
您可以使用GNU coreutils中的split
命令:
split -n l/10 --numeric-suffixes=1 --additional-suffix=.txt input.file
我希望输出名称对你来说足够好。它们从x01.txt
开始,然后是x02.txt
,依此类推。有关更多信息,请调用info split
。
上述命令适用于GNU系统,如Linux。其他系统也可能附带分割版本,但它与GNU版本不兼容。对于便携版本,我会使用这样的awk:
split.awk
{
a[NR]=$0
c++
}
END {
lines_per_split = int(c/num_splits)
f=1
for(i=1;i<=c;i++) {
print a[i] >> f".txt"
if(i%lines_per_split==0 && c-i >= lines_per_split) {
close(f".txt")
f++
}
}
}
这样称呼:
awk -vnum_splits=10 -f split.awk input.txt