我想将大型文本文件(数十 GB)的一部分复制到新的较小文件中,从一定百分比的偏移量开始到末尾,或者从开头 5% 开始。可以在 Windows 中使用简单命令完成此操作吗?
答案1
如果你有 Windows 10,你可以使用Ubuntu Bash 命令否则你可能想要使用适用于 Windows 的 Unix-GNU-实用程序
安装后,你将能够使用 unixhead
和tail
命令,并将输出重定向到新文件
head -100
(或任意数量的行)tail -100
(或任意数量的行)
为了获取文件中的行数,可以使用 Unixwc -l
命令
wc -l filename.txt
获取此文件中的行数后,您可以将该数字乘以 5/100 以获得 5% 的数量,并在head
或tail
命令中使用此结果,例如
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 命令。执行此操作后,您将获得一个新的小文件,其中包含现有文件的顶部。