V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ceshi123
V2EX  ›  Linux

询问: Linux 下大文件内容查找

  •  
  •   ceshi123 · 2017-05-08 16:39:06 +08:00 · 12280 次点击
    这是一个创建于 2757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问一下各位大神,现在有个日志文件的大小为 2.5 个 g,在 linux 下有什么命令可以打开这个文件,并且在里面搜索特定的内容吗,比如我要在这个日志中搜索订单号,效率高点的命令

    40 条回复    2021-01-08 14:43:09 +08:00
    lululau
        1
    lululau  
       2017-05-08 16:42:01 +08:00
    lnav 不过你可能需要自定义 formatter
    holyghost
        2
    holyghost  
       2017-05-08 16:42:25 +08:00
    。。。。。。。。。。。。。。。。。。

    grep
    rootit
        3
    rootit  
       2017-05-08 16:59:23 +08:00
    linux 三剑客 awk sed grep
    ceshi123
        4
    ceshi123  
    OP
       2017-05-08 17:05:01 +08:00
    现在主要担心的是,用命令打开整个文件,根本打不开,肯定不能一次性全部读入内存吧,是不是存在某个命令,可以设定缓冲区
    begeekmyfriend
        5
    begeekmyfriend  
       2017-05-08 17:08:35 +08:00
    open/lseek/read == open/pread
    ldbC5uTBj11yaeh5
        6
    ldbC5uTBj11yaeh5  
       2017-05-08 17:12:10 +08:00
    大兄弟这发帖吞吞吐吐,大家只能高来高去的回你。估计你这求助要吃瘪了。。。
    byfar
        7
    byfar  
       2017-05-08 17:16:44 +08:00
    之前看到有个 V 友用 vim 打开了 1.5G 的日志文件,用了 17 秒,没记错的话,不过不知道能不能进行查询等相关操作
    bsidb
        8
    bsidb  
       2017-05-08 17:21:25 +08:00 via Android
    @ceshi123 grep 等命令是一行一行读入的,慢是慢点,但不用担心内存爆掉。
    Lycnir
        9
    Lycnir  
       2017-05-08 17:31:16 +08:00
    awk 处理快
    whwq2012
        10
    whwq2012  
       2017-05-08 17:31:34 +08:00 via Android
    less,more,grep,sed.如果是看得话,就用 less 就够了
    htfy96
        11
    htfy96  
       2017-05-08 17:39:20 +08:00   ❤️ 1
    不要太担心 grep 这些上古工具的内存占用
    yuedingwangji
        12
    yuedingwangji  
       2017-05-08 17:54:04 +08:00
    才 2,5G 三剑客随便挑
    ryd994
        13
    ryd994  
       2017-05-08 17:55:23 +08:00 via Android   ❤️ 2
    “现在主要担心的是,用命令打开整个文件,根本打不开”
    没有恶意,楼主你是 PHP 程序员么?
    rrfeng
        14
    rrfeng  
       2017-05-08 17:59:08 +08:00
    less 会吃内存,不要用。
    fxxkgw
        15
    fxxkgw  
       2017-05-08 18:39:36 +08:00
    我怀疑你是培训班出来的
    tkisme
        16
    tkisme  
       2017-05-08 19:40:12 +08:00
    @fxxkgw 瞎说什么大实话
    用 grep、sed、awk 加点正则就行
    UnknownR
        17
    UnknownR  
       2017-05-08 20:05:26 +08:00
    个人习惯,grep 查进程什么的用的比较多,sed 和 awk 查文本比较多
    tolerance
        18
    tolerance  
       2017-05-08 20:07:09 +08:00
    数据单次利用还是重复利用,
    若单次利用 grep 足以;
    若须反复利用,建议将数据导入数据库,根据搜索的维度(如订单号)建立索引,根据业务复杂度选择关系型或者 NOSQL 数据库。
    billlee
        19
    billlee  
       2017-05-08 20:31:45 +08:00
    @ryd994 #13 应该是 gedit/nano/notepad 程序猿吧
    JiaZombie
        20
    JiaZombie  
       2017-05-08 20:59:40 +08:00
    “现在主要担心的是,用命令打开整个文件,根本打不开” ,之前 vim 打开 3GB+的文件,没什么问题。
    找内容上面已经说得很清楚了,awk, sed, grep。。。。
    woshixiaohao1982
        21
    woshixiaohao1982  
       2017-05-08 21:17:11 +08:00
    打开文件不是问题,文件再大,也是虚拟地址,只有访问的时候,会触发操作系统的页中断,
    oglop
        22
    oglop  
       2017-05-08 22:52:36 +08:00 via Android
    可以试试 silver searcher (ag)
    congeec
        23
    congeec  
       2017-05-08 23:57:25 +08:00 via iPhone
    @byfar 那是没配置好。vim 应该能秒开的。不过用 vim 搜索还是算了吧。 可以用 ag/rg 搜到位置,记下偏移,然后用 vim 打开跳到那儿就是了
    doubleflower
        24
    doubleflower  
       2017-05-09 05:54:22 +08:00 via Android
    @congeec vim 能秒开?你试过?
    congeec
        25
    congeec  
       2017-05-09 07:09:20 +08:00
    @doubleflower 我还没见过 vim 不能秒开的文件。不能秒开要么是哪儿出 bug 了,要么就是某插件要花很多时间 parse。给个大文件,我打开你瞅瞅
    doubleflower
        26
    doubleflower  
       2017-05-09 07:26:33 +08:00
    @congeec 人家是 2.5 个 G,你电脑上有视频文件有 2G 以上的吧,打开个试试能不能秒开
    lilifenghao44
        27
    lilifenghao44  
       2017-05-09 08:47:11 +08:00
    less -n 日志文件 ,命令模式下 /搜索词 搜索.
    这种应该可以搜索再问哦.
    @congeec vi 应该是默认全部读入内存吧,难道现在有什么更新了.
    ceshi123
        28
    ceshi123  
    OP
       2017-05-09 09:01:24 +08:00
    @fxxkgw 懒得理你,也不想跟你废话,你如果懂,你就指导下,我会感谢你,不懂的话就不要说什么风凉话
    Seymer
        29
    Seymer  
       2017-05-09 10:08:33 +08:00
    如果不是非要在 Linux 命令下操作,你或许可以试试 Windows 下的这款日志查看工具 LogViewer Pro,可以满足你的需求。
    vuuv
        30
    vuuv  
       2017-05-09 10:27:33 +08:00
    grep -F 订单号 文件

    说实话, 2.5G 不算大. -F 参数搜索很快的.
    willakira
        31
    willakira  
       2017-05-09 10:27:49 +08:00
    less/grep
    lkmmmj
        32
    lkmmmj  
       2017-05-09 11:31:38 +08:00
    less
    xiaket
        33
    xiaket  
       2017-05-09 11:57:42 +08:00
    我还以为谁写了一个上 T 的文件呢... 大失所望
    congeec
        34
    congeec  
       2017-05-09 13:18:15 +08:00 via iPhone
    @doubleflower 大兄弟你这个是要肛上了么。我电脑上 vim 打开 10G 的视频也没问题。其实 vim 打开音频比文本更快,二进制文件直接显示,UTF8 编码之类的还得多处理下。
    @lilifenghao44 vi 我不知道啥样,vim 一直是增量处理的(我从 7 开始用的)
    we3613040
        35
    we3613040  
       2017-05-09 18:30:11 +08:00
    grep
    sola97
        36
    sola97  
       2017-05-09 21:15:57 +08:00
    你的电脑不会连空闲的 2.5G 的内存都没有吧
    refraction
        37
    refraction  
       2017-05-09 22:13:52 +08:00
    ivyliner
        38
    ivyliner  
       2017-05-10 09:19:01 +08:00
    grep , 25G 都搞过 :-)
    components
        39
    components  
       2017-05-10 10:01:19 +08:00
    用 fopen?
    livem
        40
    livem  
       2021-01-08 14:43:09 +08:00
    less 就可以了,不知道 less 有没有最大文件的上限
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.