c0mmand
V2EX  ›  问与答

有个 23GB 的 TXT,想搜索里面某特定字符,有什么快速办法?

  •  
  •   c0mmand · Dec 7, 2015 · 4479 views
    This topic created in 3984 days ago, the information mentioned may be changed or developed.
    有个 23GB 的 TXT ,想搜索里面某特定字符,有什么快速办法?
    30 replies  •  2015-12-09 00:28:25 +08:00
    pupboss
    pupboss
    Dec 7, 2015❤️1
    1
    全部放到内存
    lsmgeb89
    lsmgeb89
    Dec 7, 2015❤️1
    2
    grep 下?感觉有 UI 的编辑器 hold 不住哈
    lshero
    lshero
    Dec 7, 2015❤️1
    3
    如果是一行一行的日志的话 切割成多份 一份一份的找
    tracyone
    tracyone
    Dec 7, 2015 via Android❤️1
    4
    grep ack ag perl …
    hahasong
    hahasong
    Dec 7, 2015❤️1
    5
    用 java 一行一行的读,写个循环
    kokutou
    kokutou
    Dec 7, 2015❤️1
    6
    winhex ...
    c0mmand
    c0mmand
    OP
    Dec 7, 2015
    7
    @pupboss 没这么大内存的机器
    @lsmgeb89 正准备这么做,找到这行数据后,有没有办法把这行数据的前后几百行一共拷贝出来呢?
    @lshero 办法可行,有点麻烦。
    @tracyone Linux 小白,参数具体意义?
    @hahasong 不会 Java 。
    Slienc7
    Slienc7
    Dec 7, 2015❤️1
    8
    随便什么语言 ReadLine
    tracyone
    tracyone
    Dec 7, 2015 via Android❤️1
    9
    @wuxiao2522 前三个是命令行程序,后面一个是脚本语言,都是用于文本查找的,特点和快慢有所不同,自己搜索下关键字和正则表达式
    bk201
    bk201
    Dec 7, 2015❤️1
    10
    readline 只适合有换行符的吧,而且换行符的哪一行还得小。
    按字节读取或者分割。
    c0mmand
    c0mmand
    OP
    Dec 7, 2015
    11
    @kokutou 感谢,已经 winhex 搞定。
    @tracyone 谢谢,已经解决了。
    PhA
    PhA
    Dec 7, 2015
    12
    sep 也可以把,
    skydiver
    skydiver
    Dec 7, 2015
    13
    前后两百行: grep -C 200 <strtofind> <filename>
    dzxx36gyy
    dzxx36gyy
    Dec 7, 2015 via Android
    14
    曾经我也纠结过怎么打开 23g 的某社工库 txt ……
    abelyao
    abelyao
    Dec 7, 2015 via iPhone
    15
    @dzxx36gyy 哪个库啊?
    ryd994
    ryd994
    Dec 7, 2015 via Android
    16
    read(n)不就好了么?
    多少 G 都行啊
    dzxx36gyy
    dzxx36gyy
    Dec 7, 2015 via Android
    17
    @abelyao soyun
    lululau
    lululau
    Dec 7, 2015
    18
    如果你能估计要检索出的结果在文件中的偏移量,或者文件是有序的,可以用二分查找之类的:

    # 显示一个文件中从第 50G 个字节开始的长度为 1K 字节的内容
    offset=$((50*1024*1024*1024-1))
    length=1024
    dd if=file_name bs=1 skip="$offset" count="$length" | grep regex

    如果不是这个情况,那就搞不懂这个问题到底是啥意思了
    xujif
    xujif
    Dec 7, 2015
    19
    grep --help 就可以满足了
    ixiaozhi
    ixiaozhi
    Dec 7, 2015
    20
    23GB 的社工库么。。。
    c0mmand
    c0mmand
    OP
    Dec 7, 2015
    21
    @ixiaozhi 类似吧,是一本字典。
    qinxi
    qinxi
    Dec 7, 2015
    22
    如果只搜一次 那就随便 readline 如果想重复搜索 你用类似 lucene 的工具吧 不过嘛 索引会很大很大..哈哈哈哈
    squid157
    squid157
    Dec 7, 2015
    24
    读文件才是最慢的吧

    想想弄到数据库里面然后对有意义的字段加个索引多好
    fxxkgw
    fxxkgw
    Dec 7, 2015
    25
    grep 最快 也可以用 es
    leavic
    leavic
    Dec 7, 2015
    26
    你该问问写这个 txt 文件的人
    matrix67
    matrix67
    Dec 7, 2015 via Android
    27
    ag 啊
    46fo
    46fo
    Dec 7, 2015
    28
    UE
    omen
    omen
    Dec 8, 2015
    29
    用 everedit 打开就可以搜索
    webjin
    webjin
    Dec 9, 2015
    30
    @wuxiao2522 你好,怎么搞定的,有操作教程吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5127 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 01:19 · PVG 09:19 · LAX 17:19 · JFK 20:19
    ♥ Do have faith in what you're doing.