V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yaotian
V2EX  ›  程序员

大家在linux下打开过10G的大文件进行编辑吗?

  •  
  •   yaotian · 2013-05-22 11:09:28 +08:00 · 13086 次点击
    这是一个创建于 3991 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果你用vim的话,就很悲剧。

    收集一下你们的做法。
    19 条回复    2015-10-03 03:26:24 +08:00
    cloudzhou
        1
    cloudzhou  
       2013-05-22 11:14:41 +08:00
    你是真的需要编辑呢?(大部分都是不需要的)
    还是只是为了查看相关内容
    一般 sed 和 grep 能解决大部分的需求
    molinxx
        2
    molinxx  
       2013-05-22 11:16:10 +08:00
    10G还真没试过,1G左右的经常~VIM还好,要等20秒左右加载完成,opensuse系统1230V2的U
    molinxx
        3
    molinxx  
       2013-05-22 11:18:02 +08:00
    只查看还是用less,编辑还是sed awk吧~
    hadoop
        4
    hadoop  
       2013-05-22 11:50:12 +08:00 via Android
    @molinxx vim这种必须在文件打开时一次性load进来,完全可以只load一部分,剩下的都用户定位到那里再load。而且我猜测vim内部是不是组织文件内容时需要额外的内存消耗,打开1g文件一般vim占用内存一般要大于1g
    cassyfar
        5
    cassyfar  
       2013-05-22 11:57:10 +08:00
    我也在想这个问题
    lululau
        6
    lululau  
       2013-05-22 12:06:15 +08:00
    有一种特例,可以用dd来完成,速度很快,例如,如果要将 bigfile 中的第 m 个字节到第 n 个字节(从1开始)替换成字符串 x, 且x的长度为 (m-n+1),那么可以用命令 dd 来完成编辑:

    echo -n x | dd of=bigfile seek=$((m-1)) bs=1 count=$((m-n+1)) conv=notrunc
    molinxx
        7
    molinxx  
       2013-05-22 12:19:06 +08:00
    @hadoop 1G左右的话只有刚加载的时候会占用些内存,打开之后就没那么多了~
    RisingV
        8
    RisingV  
       2013-05-22 12:45:45 +08:00
    我的第一反映是,windows直接趴下
    slimbloody
        9
    slimbloody  
       2013-05-22 15:17:41 +08:00
    很想知道你为什么要编辑一个10G的文件?这个文件的作用和类型是什么
    reusFork
        10
    reusFork  
       2013-05-22 16:21:54 +08:00
    sed啊…
    yaotian
        11
    yaotian  
    OP
       2013-05-22 21:28:57 +08:00
    clino
        12
    clino  
       2013-05-22 21:31:16 +08:00
    hexedit 这个也算编辑吧? 嘿嘿
    VYSE
        13
    VYSE  
       2013-05-22 21:38:13 +08:00
    多数Editor会预载到内存,HEX EDITOR更适合一些。推荐wxHexEditor,追赶WINHEX的LINUX下HEX编辑器
    vking
        14
    vking  
       2013-05-22 23:24:45 +08:00
    @RisingV notepad++(或其他類似編輯器)的异步加载比你想象中的猛.
    ForgotFun
        15
    ForgotFun  
       2013-05-23 00:24:28 +08:00
    32位系统上肯定是打不开10G的文件的,因为默认系统调用open不支持大于4G文件,除非用open64或者BIG_FIRLE 参数.
    xdeng
        16
    xdeng  
       2013-05-23 01:16:52 +08:00 via iPhone
    @RisingV 你out了。ue就能打开。亲测
    williamx
        17
    williamx  
       2013-05-23 09:13:32 +08:00
    说说看是什么类型的文件,让我长长见识啊!
    tuoxie007
        18
    tuoxie007  
       2013-05-23 09:38:29 +08:00 via iPad
    我也就用more看看log,随便就好多个G
    butfly
        19
    butfly  
       2015-10-03 03:26:24 +08:00
    楼上都太孤陋寡闻了。编辑过 svnadmin dump 出来的 10G 的文件么?没办法…… load 的时候报错……

    PS , windows 下新点的编辑器都没问题的。当然还在用 x86 的就不说了。

    听说 joe 可以部分加载。 1G 文件只占 50M 内存。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3352 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:14 · PVG 20:14 · LAX 05:14 · JFK 08:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.