`

linux下日志分析常用命令总结sort,uniq,head

 
阅读更多
一、sort命令
      sort命令用来对文本文件进行排序,并将排序结果输出到标准输出,下面通过实例介绍sort各种参数的用法
  1.      sort默认排序为首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
    $ cat sort.log |sort
    aaccv
    bbkk
    ergefe
    jsdhfh
    qwqw
    rrrr
    rrrr
    wewr
    
     
  2.  sort -u 排序后去除重复结果
    $ cat sort.log |sort -u
    aaccv
    bbkk
    efergferg
    ergefe
    ergfewrg
    ggggg
    jsdhf
    qwqw
    rrrr
    sefhuis
    sssss
    tttt
    wewr
    
    原sort.log
    qwqw
    wewr
    aaccv
    bbkk
    rrrr
    rrrr
    ergefe
    jsdhf
    sefhuis
    sssss
    sssss
    efergferg
    ggggg
    ggggg
    ergfewrg
    tttt
    tttt
     
  3. sort -o 将排序后的内容输出覆盖到当前被排序文件内。(重定向只能新建一个文件)
    yebing.li@QT-liyebing ~/shell_example
    $ sort -u newSort.log  -o newSort.log
    
    yebing.li@QT-liyebing ~/shell_example
    $ more newSort.log
    
    aaccv
    bbkk
    C
    efergferg
    ergefe
    ergfewrg
    ggggg
    h
    jsdhf
    qwqw
    rrrr
    sefhuis
    sssss
    tttt
    wewr
    
     
  4. sort -r ,sort默认的排序是升序,-r改为降序
  5. sort -n 用数字类型来排序,默认是按照ASCII码排序
    yebing.li@QT-liyebing ~/shell_example
    $ cat number.log |sort -rn
    133ee
    6
    5ff
    5
    4r
    3
    3
    3
    2e
    2
    2
    2
    1
    0
    
    
    yebing.li@QT-liyebing ~/shell_example
    $ cat number.log |sort -n
    0
    1
    2
    2
    2
    2e
    3
    3
    3
    4r
    5
    5ff
    6
    133ee
    
     
  6. sort -k -t   ,其中k为指定的列数(从1开始),t列之间的为分隔符,下面的例子为按照分割之后的第二列来排序
     cat number_sep.log |sort -n -k 2 -t :
    werw:1:3
    sdfs:12:4
    weq:66:88
    wdqwfx:99:55
    
    
    number_sep.log的内容:
    sdfs:12:4
    weq:66:88
    wdqwfx:99:55
    werw:1:3
    
    
  7. 其他参数
    -f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写

    -c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

    -C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1

    -M会以月份来排序,比如JAN小于FEB等等

    -b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
    参考 http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html

二、uniq命令
      Note:  'uniq' does not detect repeated lines unless they are adjacent.  You may want to sort the input
first, or use `sort -u' without `uniq'. 
     该命令必须在排序之后再使用。
      
       -c, --count
              prefix lines by the number of occurrences

       -d, --repeated
              only print duplicate lines

       -D, --all-repeated[=delimit-method]
              print all duplicate lines delimit-method={none(default),prepend,separate} Delimiting is done with blank lines

       -f, --skip-fields=N
              avoid comparing the first N fields

       -i, --ignore-case
              ignore differences in case when comparing

       -s, --skip-chars=N
              avoid comparing the first N characters

       -u, --unique
              only print unique lines

       -z, --zero-terminated
              end lines with 0 byte, not newline

       -w, --check-chars=N
              compare no more than N characters in lines
 
三、head命令
       head 用来显示档案的开头至标准输出中默认head命令打印其相应文件的开头10行。
      
  -c, --bytes=[-]K
              print the first K bytes of each file; with the leading `-', print all but the last K bytes of each file

       -n, --lines=[-]K
              print the first K lines instead of the first 10; with the leading `-', print all but the last K lines of each file

       -q, --quiet, --silent
              never print headers giving file names

       -v, --verbose
              always print headers giving file names
 
分享到:
评论

相关推荐

    nginx-log-analysis:用于分析 nginx 日志文件的很棒的 linux shell 命令的精选列表

    接下来,我们将介绍一些常用的Linux shell命令用于分析这些日志。 1. **`grep`**:筛选特定信息。例如,找出所有返回404状态码的请求: ``` grep '404' /var/log/nginx/access.log ``` 2. **`awk`**:处理字段...

    Apache日志分析手册

    Apache日志分析手册详细介绍了如何在Linux环境下利用Apache服务器的访问日志来分析和诊断问题。在生产环境中,服务器的运行状况往往可以通过日志文件得到反映,特别是在发现访问量异常、响应缓慢或出现错误信息时。...

    Linux 60个常用命令集合

    在Linux操作系统中,掌握一些基本且常用的命令是十分必要的,这些命令可以帮助用户高效地管理和操作系统。以下就是60个常见的Linux命令及其详细解释: 1. **ls**:列出目录内容,常用选项 `-l` 显示详细信息,`-a` ...

    Linux日志分析与视频分享资料

    ### Linux日志分析关键知识点详解 #### 一、引言 在现代IT环境中,日志文件扮演着极其重要的角色,特别是在Linux系统下。通过分析这些日志,管理员能够监控系统的健康状况、诊断问题以及防范安全威胁。本文将详细...

    Linux下日志统计举例.pdf

    在Linux操作系统中,日志分析是一项重要的系统维护工作,它能帮助我们监控系统状态、排查问题和优化性能。本文以Apache访问日志(access_log)为例,介绍了15种常见的日志分析方法,以下是对这些方法的详细解释: 1. ...

    第2篇:Linux日志分析.pdf

    ### Linux日志分析知识点 #### 一、日志文件概览与重要性 Linux系统作为全球范围内广泛应用的操作系统之一,在服务器领域占据着举足轻轻的地位。为了更好地维护和管理这些系统,掌握其日志文件的管理和分析至关...

    Shell+Linux命令实现日志分析

    使用`cut`命令以特定字符(通常是空格或逗号)分隔日志条目,提取IP地址(通常是第一字段),然后使用`uniq -c`统计每个IP出现的次数,并通过`sort -rn`按降序排列,最后使用`head -20`取前20个最多访问的IP。...

    Shell日志分析常用命令和例子

    本文将详细介绍一些常用的Shell命令及其在日志分析中的应用。 1. **less**: `less 文件名` 用于查看文件内容,按"q"退出。这比`cat`命令更实用,因为`less`允许上下滚动,而`cat`一次性显示整个文件内容。 2. **...

    Linux文本处理命令合集

    ### Linux文本处理命令合集详解 #### diff/patch:查找/修补文本差异 - **diff** 命令用于比较两个文件之间的不同之处。 - `diff version1.txt version2.txt`:简单地列出两个文件之间的不同行。 - `diff -u ...

    LINUX 常用维护命令

    - `lsof`: 列出打开的文件,结合`awk`、`sort`、`uniq`和`head`命令可以统计并显示最常被引用的文件描述符。 #### 6. 用户密码批量更改 - `chpasswd`: 从文件中读取用户名和密码,批量修改用户密码,通常用于大规模...

    linux100个常用命令大全

    ### Linux 100个常用命令详解 #### 1. `ls` - 列出目录下的文件和子目录 - **用途**: 显示指定目录下的文件列表。 - **常用选项**: - `-a`: 显示所有文件及目录 (包括隐藏文件)。 - `-l`: 使用长格式列出文件详情...

    Linux常用命令全集

    ### Linux常用命令全集 #### 引言 随着信息技术的发展,Linux作为一种开源的操作系统,在服务器领域及嵌入式系统中占据了举足轻重的地位。它不仅免费,而且因其稳定性、可靠性以及高性能等特点受到广泛欢迎。对于...

    linux常用命令.docx

    在Linux系统运维中,熟悉和掌握一系列常用的命令是至关重要的。这些命令可以帮助我们高效地管理系统、监控状态、查找和编辑文件,以及处理各种日常任务。以下是对标题和描述中涉及的一些关键Linux命令的详细说明: ...

    150个常用的Linux命令汇总

    "150个常用的Linux命令汇总" Linux 命令是 Linux 操作系统的核心组件之一,它们提供了对系统的控制和管理能力。以下是 150 个常用的 Linux 命令汇总,涵盖了文件和目录操作、查看文件及内容处理、文件压缩及解压缩...

    Linux下apache日志分析与状态查看方法

    使用`awk`命令可以提取日志中的IP地址,`sort`进行排序,`uniq -c`统计每个IP出现的次数,再用`sort -nr`按次数降序排列,最后`head -n 10`获取前10个。例如: ``` awk '{print $1}' access_log | sort | uniq -c...

    Linux Web服务器网站故障分析常用命令

    以下是一些常用的Linux命令,它们可以帮助我们了解服务器的连接状态、请求来源、网络流量以及日志分析等关键信息。 **系统连接状态篇** 1. **查看TCP连接状态**: 使用`netstat -nat`命令可以查看所有活动的TCP...

    redhat linux关键命令

    `ls`命令是最常用的Linux命令之一,用于列出当前目录下的文件和子目录。通过添加选项如`-l`可以获取详细信息,`-a`可以显示隐藏文件。 ### 18. mkdir - 创建目录 `mkdir`命令用于创建新的目录,是文件组织的基本...

    Linux 常用命令大全(基础指令+案例指令).docx

    ### Linux 常用命令详解 #### 一、文件管理 **1.1 基础指令** - **ls**: 列出当前目录下的文件和目录。这是一个非常基础且常用的命令,用于显示当前目录下的所有文件及子目录列表。默认情况下,只列出非隐藏文件...

Global site tag (gtag.js) - Google Analytics