我如何将大文件的一部分复制到新文件中?

我如何将大文件的一部分复制到新文件中?

我想将大型文本文件(数十 GB)的一部分复制到新的较小文件中,从一定百分比的偏移量开始到末尾,或者从开头 5% 开始。可以在 Windows 中使用简单命令完成此操作吗?

答案1

如果你有 Windows 10,你可以使用Ubuntu Bash 命令否则你可能想要使用适用于 Windows 的 Unix-GNU-实用程序

安装后,你将能够使用 unixheadtail命令,并将输出重定向到新文件

  • head -100(或任意数量的行)

  • tail -100(或任意数量的行)

为了获取文件中的行数,可以使用 Unixwc -l命令

wc -l filename.txt

获取此文件中的行数后,您可以将该数字乘以 5/100 以获得 5% 的数量,并在headtail命令中使用此结果,例如

head -100000 file1 > file2

男人头

head - output the first part of files
-n, --lines=[-]K 
print the first K lines instead of the first 10; with the leading '-', print all but the last K lines of each file

男人尾巴

tail - output the last part of files 
-n, --lines=K
    output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth

厕所人

wc - print newline, word, and byte counts for each file 
-l, --lines
    print the newline counts

答案2

真正简单的方法——使用more并重定向输出:

  • giantfile.csv- 您现有的大文件
  • smallfile.csv- 您正在创建的新“小”文件

输入并按回车键:

more giantfile.csv > smallfile.csv

Space多次按下 键,将一些输出重定向到新的小文件。然后按下Ctrl+Pause键退出 more 命令。执行此操作后,您将获得一个新的小文件,其中包含现有文件的顶部。

相关内容