我知道有一个命令split
可以根据文件大小将文件分成几个块,然后有一个命令wc
可以计算单词数。我只是不知道如何将两者结合使用。
答案1
必须用 来完成吗wc
?因为这里我遇到了使用正则表达式作为csplit
模式的非常好的尝试。我现在没有系统来测试它,但正则表达式本身似乎可以完成这项工作。
表达式看起来像这样:
csplit input-file.txt '/([\w.,;]+\s+){500}/'
答案2
尝试这样做:
file=/etc/passwd
count=2
count_file_lines=$(wc -l < "$file")
split -n$((count_file_lines/count)) "$file"
ls -ltr x*
这会将文件除以$count
(2)
答案3
Unix 实用程序通常在整行上运行,因此最好的办法是首先修改输入,以便每行写入一个单词,如下所示(如果单词中有其他字符,则可能需要稍微修改此命令):
<inputfile tr -c A-Za-z0-9 \\n
由于您只对单词感兴趣,因此通过将输出管道传输到调用中来消除空行可能是个好主意grep
。完整命令如下所示:
<inputfile tr -c A-Za-z0-9 \\n | grep -v '^$' | split -l 500
您可以稍后加入新文件,以便将所有内容恢复到一行(使用类似的东西tr -d \\n
),但是如果您计划使用 Unix 工具进行更多操作,请保持这种方式,split
这不是唯一可以运行的程序整行。
答案4
您还可以使用此软件来处理拆分字文件。 Word Files Splitter是一个优秀的工具,可以根据Word文件中的页数或节数将单个Word文件拆分为多个Word文件。