我有一个巨大的文件(8GB),我想在前30行中将字符串" LATIN1 "替换为" UTF-8 ",最有效的方法是什么?是否有一种方法可以使用sed,但在解析前30行后退出。
VIM无法在3小时内保存文件。
perl -pi -e 's,\bLATIN1\b,UTF-8,g if $. <= 30' thefile
使用sed
时,您可以使用q
退出:
sed -e 's/LATIN1/UTF-8/g' -e 30q
sed -n '31,$p' my_old_one >> my_new_one
。 - William Pursell未经测试,但我认为ed
将直接编辑文件而不写入临时文件。
ed yourBigFile << END
1,30s/LATIN1/UTF-8/g
w
q
END