我希望逐行读取大文件,执行字符串替换并将更改保存到文件中,IOW一次重写1行。在PHP / Unix中有任何简单的解决方案吗? 我想到的最简单的方法是将这些行写入一个新文件,然后替换旧文件,但它并不优雅。
答案 0 :(得分:1)
我认为只有2个选项
读取,替换然后将替换的字符串存储到内存中,完成后,覆盖源文件。
阅读&替换字符串然后立即将每一行写入tmp文件,一旦完成,用tmp文件替换原始文件
#1将更有效,因为IO很昂贵,如果你有大量内存或处理文件不是太大,请使用它。
#2会有点慢但即使在大文件上也相当稳定。
当然,您可以通过将替换字符串按行写入文件(而不仅仅是按行)来结合两种方式
我能想出最简单,最优雅的方式。
答案 1 :(得分:0)
在大多数情况下,使用临时文件似乎并不是一个糟糕的解决方案。
A<C>