gpt4 book ai didi

vim - 如何在 VIM 中替换行结尾

转载 作者:行者123 更新时间:2023-12-02 17:05:36 24 4
gpt4 key购买 nike

如何替换大文件(>100MB)中的所有行结尾?我已经尝试过这样做

:%s/\n/,/g

但是速度太慢了。

最佳答案

因此,我浏览并测试/计时了其他人给出的一些答案,以及我自己的 python 答案。这是我得到的:

tr:

> time tr "\n" "," < lines > line
real 0m1.617s
user 0m0.100s
sys 0m1.520s

python :

> time python -c 'import sys; print sys.stdin.read().replace("\n",", "),' < lines > line
real 0m1.663s
user 0m0.060s
sys 0m1.610s

awk:

> time awk '{printf("%s, ", $0)}' lines > line                                 
real 0m1.998s
user 0m0.390s
sys 0m1.600s

perl:

> time perl -e 'while (<>) { chomp; print "$_, " }' lines > line
real 0m2.100s
user 0m0.590s
sys 0m1.510s

sed:

> time sed 's/$/, /g' lines > line                                             
real 0m6.673s
user 0m5.050s
sys 0m1.630s

这是我使用的文件:

> ls -lh lines
-rw-r--r-- 1 some one 101M 2010-03-04 19:54 lines
> wc -l < lines
1300000
> head -n 3 < lines
The pretty pink puma pounced on the unsuspecting aardvark, the scientist watched.
The pretty pink puma pounced on the unsuspecting aardvark, the scientist watched.
The pretty pink puma pounced on the unsuspecting aardvark, the scientist watched.
> head -n 1 < lines | wc -c
82

最初的计时是在 cygwin 中进行的,现在已在完全更新的 ubuntu 9.10 中进行计时。此外,文本文件大小增加到 100 兆,行宽 80 个字符。正如您所看到的,除了 sed 之外的任何东西都是个好主意。

关于vim - 如何在 VIM 中替换行结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com