【发布时间】:2016-11-14 06:35:18
【问题描述】:
我有一个包含 2 列的约 10,000 行的文件:
org_string1 \t replacement_string1
org_string2 \t replacement_string2
将所有这些 org_string 替换为另一个文本文件中对应的 replacement_string(在第二个文件中进行 10k 替换)的最佳方式(速度/便利性)是什么?
我打算将它们转换为 sed 替换命令,但不确定速度性能以及它是否会超过 linux 中的最大命令行限制。
假设:
- 所有 org_string 和 replacement_string 都是唯一的。
- org_string 是输入文件中的一个单词(由空格包围)。
【问题讨论】:
-
所以你想在第二个文件中做 10k 个不同的替换?根据我的经验,
sed会变得非常慢,即使你给它一个包含 10ks/org_string1/replacement_string1/行的文件。我没有尝试使用 10k 正则表达式和替换字典的 Perl 或 Python。 -
我猜在 perl 中转换/替换不会有问题,因为 perl 会在几毫秒内完成。
-
单次替换会很快。但是根据 10k 模式检查每一行将总结出来。
-
快速替换超大文件中的文本 [StackExchange] unix.stackexchange.com/questions/255373/…
-
@ssr1012 您链接到的问题不是关于可能对文件的每一行进行 10k 不同的替换。大量替换是这里的问题。
标签: python perl sed substitution