我正在使用脚本sed
文件并以这种方式删除文本:
gzip -cd /data/file.gz | sed 's/WITH (appendonly=true, compresstype=quicklz)//' | gzip > file_seeded.gz
对大文件(例如50GB)执行操作需要花费大量时间。我这样做的方式是最佳方式还是有其他方法可以加快该过程?
最佳答案
事实上,您可以附加多个 gzip 文件:
mysed() {
sed 's/WITH (appendonly=true, compresstype=quicklz)//' | gzip
}
export -f mysed
gzip -cd /data/file.gz | parallel --pipe -k --block 50M mysed > file_seeded.gz
调整 50M
直到找到最有效的值。这取决于/tmp 的 I/O 速度以及您拥有多少 RAM 和 CPU 缓存。最佳值很可能在 1M 到 1000M 之间。
如果时间比磁盘空间更重要,请使用gzip -1
。
关于performance - 加速 gz 文件上的 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63848151/