Perl 将文件拆分为块,在solaris中保留完整的行

Perl 将文件拆分为块,在solaris中保留完整的行,perl,shell,awk,solaris,solaris-10,Perl,Shell,Awk,Solaris,Solaris 10,如何将一个文件拆分为3行,行数相等(或几乎相等),而不中断一行。 例如,将一个25行的文件拆分为3个分别为9、8和8行的文件。 我知道split-n l/3,但不适用于Solaris10。 尝试了一些我在网上得到的东西,但没有得到想要的结果,比如: !/usr/bin/ksh fspec=~/input.list num_files=3 total_lines=$(wc -l <${fspec}) ((lines_per_file = (total_lines + num_files -

如何将一个文件拆分为3行,行数相等(或几乎相等),而不中断一行。 例如,将一个25行的文件拆分为3个分别为9、8和8行的文件。 我知道split-n l/3,但不适用于Solaris10。 尝试了一些我在网上得到的东西,但没有得到想要的结果,比如:

!/usr/bin/ksh
fspec=~/input.list
num_files=3
total_lines=$(wc -l <${fspec})
((lines_per_file = (total_lines + num_files - 1) / num_files))
split -l ${lines_per_file} ${fspec} files.
/usr/bin/ksh
fspec=~/input.list
num_files=3

总行数=$(wc-l这里有一个通用的解决方案,适用于
awk

awk '{a[NR]=$0}  END {t=int (NR/s);r=((NR/s-t)*s);while (n<s) for (i=t*n+++1;i<=t*n;i++) print a[i] > "file"n;while (i++<=NR) print a[i-1] > "file"n}' s=3 infile

请展示您尝试过的内容,并解释您遇到的问题having@Jotne当前位置如果这是他尝试过的全部内容,那么他不值得help@Borodin,尝试了一些我在网上得到的东西,但没有给出想要的结果,比如:
#!/usr/bin/ksh fspec=~/input.list num_files=3行=$(wc-l@user3437245:请通过编辑您的问题来添加类似的信息。与其到处搜索您的问题的现成解决方案,尤其是Korn shell解决方案,不如自己想一个解决方案。您知道任何编程语言吗?到目前为止,听起来您好像真的错了工作
cat number
1       one
2       two
3       three
4       four
5       five
6       six
7       seven
8       eight
9       nine
10      ten
awk '{a[NR]=$0}  END {t=int (NR/s);r=((NR/s-t)*s);while (n<s) for (i=t*n+++1;i<=t*n;i++) print a[i] > "file"n;while (i++<=NR) print a[i-1] > "file"n}' s=3 number
cat file1
1       one
2       two
3       three
cat file2
4       four
5       five
6       six
cat file3
7       seven
8       eight
9       nine
10      ten