我有一个很大的 gzip 文本文件。我想要类似的东西:
zcat BIGFILE.GZ | \
awk (snag 10,000 lines and redirect to...) | \
gzip -9 smallerPartFile.gz
Run Code Online (Sandbox Code Playgroud)
那里的 awk 部分,我基本上希望它占用 10,000 行并将其发送到 gzip,然后重复直到原始输入文件中的所有行都被消耗掉。我找到了一个声称这样做的脚本,但是当我在我的文件上运行它然后将原始文件与拆分然后合并的文件进行比较时,缺少行。所以,awk 部分出了点问题,我不确定哪个部分坏了。
目标:
这是代码。有人可以告诉我为什么这不会产生可以拆分和合并然后成功地与原始文件进行差异的文件吗?
# Generate files part0.dat.gz, part1.dat.gz, etc.
# restore with: zcat foo* | gzip -9 > restoredFoo.sql.gz (or something like that)
prefix="foo"
count=0
suffix=".sql"
lines=10000 # Split every 10000 line.
zcat /home/foo/foo.sql.gz |
while true; do
partname=${prefix}${count}${suffix}
# Use awk to read the required number of lines from …Run Code Online (Sandbox Code Playgroud) awk ×1