vim之Linux命令用另一个字符串替换HUGE文件中的字符串

98°冷暖 阅读:21 2024-11-01 17:39:52 评论:0

我有一个巨大的文件 (8GB),我想用 UTF-8 替换前 30 行的字符串 LATIN1 什么是最有效的方法?有一种方法可以使用 sed 但在解析前 30 行后退出。

VIM 无法在 3 小时内保存文件。

请您参考如下方法:

问题是,在替换的情况下,所有程序都会制作一个包含替换的文件的副本,以便最终替换原始文件——它们不希望冒着因显而易见的原因丢失原件的风险。

使用 perl,您可以在一行中执行此操作,但这并不会使其更短(好吧,与 vim 相比,它可能更短,因为 vim 将历史记录保存在另一个文件中,而 perl 不会) :

perl -pi -e 's,\bLATIN1\b,UTF-8,g if $. <= 30' thefile 


标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号