zoukankan      html  css  js  c++  java
  • linux中日志文件查找,根据关键字,vi命令,awk和wc

    参考: http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html

    当时需求:查看系统日志,统计系统的处理时间(从请求进去系统到系统返回)

    日志文件: 1.log

    开始处理:

    1. 将日志中的关键行(初始、结束、关键节点)打印出来/输出到文件(后添加:> 2.log):

      cat 1.log | grep key  //根据关键字输出

      cat 1.log | egrep '(start handle)+|(end handle)+'  //根据两个关键字  

    如果不能一次查找出来(线程数较多),可以先输出到文件,再重复根据线程名查找一次。

    grep最常用的分组,egrep可以使用更多的正则符号,fgrep可以认为就是不使用正则字符(应该可以这么理解,原文:正则表达式中的元字符表示回其自身的字面意义,不再特殊)。

    cat 1.log | grep key  可以写为: grep key 1.log   ,同理。

     awk和wc命令

    ps -ef | grep java | awk '{print $2}'  : 可以显示出所有Java进程的pid,

    awk中可以默认使用空白分隔符,可以使用awk -F,指定分隔符,其中$2就是分割后输出第二个字符串,

    ps -ef | grep java | awk '{print $2}' | wc -l  : 可以统计当前一共有多少Java进程

    wc中-c 统计字节数,-l 统计行数,-m 统计字符数,这个标志不能与 -c 标志一起使用,-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

      -L 打印最长行的长度。

    VI中

    //以下删除命令好多都是剪贴,删除应该就是剪贴吧。。
    Ctrl+u:向文件首翻半屏;
    Ctrl+d:向文件尾翻半屏;
    Ctrl+f:向文件尾翻一屏;
    Ctrl+b:向文件首翻一屏;
    Esc:从编辑模式切换到命令模式;
    ZZ:命令模式下保存当前文件所做的修改后退出vi;
    :行号:光标跳转到指定行的行首;
    :$:光标跳转到最后一行的行首;
    x或X:删除一个字符,x删除光标后的,而X删除光标前的;
    D:删除从当前光标到光标所在行尾的全部字符;
    dd:删除光标行正行内容;
    ndd:删除当前行及其后n-1行;
    nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
    p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
    P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
    /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
    ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
    a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
    a:在当前字符后添加文本;
    A:在行末添加文本;
    i:在当前字符前插入文本;
    I:在行首插入文本;
    o:在当前行后面插入一空行;
    O:在当前行前面插入一空行;
    :wq:在命令模式下,执行存盘退出操作;
    :w:在命令模式下,执行存盘操作;
    :w!:在命令模式下,执行强制存盘操作;
    :q:在命令模式下,执行退出vi操作;
    :q!:在命令模式下,执行强制退出vi操作;
    :e文件名:在命令模式下,打开并编辑指定名称的文件;
    :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
    :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
    :set number:在命令模式下,用于在最左端显示行号;
    :set nonumber:在命令模式下,用于在最左端不显示行号;
    1,3 co 4 将1-3行复制到4行之后
    set nu 显示行数
    nu 查看行数
    u 撤销
    U 撤销,撤销上一次撤销, 就是撤销/恢复重复
    gg 光标移动到第一行
    G 光标到最后一行
    1/2/3 任意数字,光标到指定数字行
    "zz"命令会把当前行置为屏幕正中央,"zt"命令会把当前行置于屏幕顶端,"zb"则把当前行置于屏幕底端.
    搜索: "?"命令与"/"的工作相同,只是搜索方向相反.n下一次出现的位置,"N"命令会重复前一次查找,但是与最初用"/"或"?"指定的搜索方向相反。
    如果查找内容忽略大小写,则用命令"set ignorecase", 返回精确匹配用命令"set noignorecase"
    用于转义特殊字符

  • 相关阅读:
    【转】Eclipse中查看jar包中的源码
    maven No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    Android问题-DelphiXE8新建AVD出现“no system images installed for this target”
    Android教程-DelphiXE Android自适应屏幕办法
    教程-在F9后提示内存错误,点击了乎略,之后怎么取消乎略?
    PC问题-该虚拟机似乎正在使用中
    PC问题-(仅供备用)取消磁盘的自动扫描
    Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)
    Android教程-DelphiXE Android的所有权限按照分类总结说明
    C++问题-UniqueAppObject.cpp(147): error C3861: “GUXClientInit”: 找不到标识符
  • 原文地址:https://www.cnblogs.com/moly/p/9186664.html
Copyright © 2011-2022 走看看