performance - 加速 gz 文件上的 sed

标签 performance file sed gzip

我正在使用脚本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/

相关文章:

c++ - 阿特金筛法出奇地慢

linux - 多次运行后令人困惑的 perf stat 结果

Java 文件对象进入 inode ?

mysql - 在 Mac 命令行上,如何执行文件 foo.sql 中的 SQL 语句并将结果以制表符分隔形式导出到另一个文件中?

linux - 操作 AWK 字段变量 ($1,$2,..) 并将其添加到行尾

java - 真的可以快速分割字符串而不影响带引号的字符串吗?

ios - 循环处理时间太长

python - 如何在内存中创建文件句柄并传递给Python中的外部命令

linux - 从特定字段的 csv 中删除行,如果它包含以下 x 个字符串/单词

bash - 查找并替换为 sed