Linux sort 命令快速上手指南

 更新时间:2025年03月19日 08:49:24   作者:dashery  
作为运维工程师,处理日志、分析数据是家常便饭,sort命令是Linux中高效整理文本的神器,能快速对文件内容排序、去重、统计,本文用最简洁的方式,帮你掌握sort的核心用法,感兴趣的朋友一起看看吧

作为运维工程师,处理日志、分析数据是家常便饭。sort命令是Linux中高效整理文本的神器,能快速对文件内容排序、去重、统计。本文用最简洁的方式,帮你掌握sort的核心用法。

一、基础排序:秒杀杂乱文本

# 默认按字典序升序排列(文件/输入流)
sort filename.txt
# 示例:对日志时间排序(假设第一列为时间)
sort /var/log/nginx/access.log

二、实用参数:精准控制排序

按数值排序处理数字时,务必用-n,避免"10"排在"2"后面!

sort -n numbers.txt

逆序排列-r实现从大到小或从Z到A:

sort -nr large_numbers.txt  # 数值逆序

按指定列排序-k选择列,-t指定分隔符(如逗号、冒号):

# 按第2列(数值)排序CSV文件
sort -t',' -k2n data.csv

去重-u快速清理重复行(需先排序):

sort -u ips.txt > unique_ips.txt

忽略大小写-f让"Apple"和"apple"视为相同:

sort -f mixed_case.txt

三、运维实战场景

1. 统计日志IP访问频率

cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr
  • 步骤拆解
    • awk提取IP列
    • sort排序以便uniq统计
    • uniq -c计数
    • sort -nr按访问量倒序

2. 按内存占用排序进程

ps aux --sort=-%mem | head -n 10
  • --sort=-%mem等价于sort -k4nr(按第4列内存倒序)

3. 合并多个已排序文件

sort -m file1.txt file2.txt > merged.txt
  • -m(merge)效率远高于重新排序大文件

四、避坑指南

性能优化
处理超大文件时,可用-T指定临时目录(避免默认分区空间不足):

sort -T /mnt/big_disk/tmp/ huge_file.txt

语言环境
非英文排序异常时,设置LC_ALL=C禁用本地化规则:

LC_ALL=C sort file.txt
  • 稳定排序
    若需保留等值行的原始顺序,加-s(stable sort)。

五、总结

sort + awk/uniq等命令组合,是运维分析数据的瑞士军刀。掌握核心参数:
-n(数值)、-k(列)、-t(分隔符)、-r(逆序)、-u(去重),即可应对90%的排序需求。

记住: 处理数据前,先用headsample.txt测试命令,避免直接操作大文件翻车!

到此这篇关于Linux sort 命令快速上手指南的文章就介绍到这了,更多相关Linux sort 命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • find命令的结果顺序是什么

    find命令的结果顺序是什么

    这篇文章主要介绍了find命令的结果顺序是什么,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • shell进度条追踪指令执行时间的场景分析

    shell进度条追踪指令执行时间的场景分析

    这篇文章主要介绍了shell进度条如何追踪指令执行时间,本文中的进度条可以应用于大部分场景。不用修改进度条函数的任何代码,就可以直接使用,特别适合那些可预估指令执行时间的场景,需要的朋友可以参考下
    2022-06-06
  • Linux查找占用的端口,并终止进程的方法

    Linux查找占用的端口,并终止进程的方法

    下面小编就为大家带来一篇Linux查找占用的端口,并终止进程的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • shell查找某字符串在某文件中出现行数的方法

    shell查找某字符串在某文件中出现行数的方法

    这篇文章主要介绍了shell查找某字符串在某文件中出现行数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 详解如何在Linux中退出Hive命令行

    详解如何在Linux中退出Hive命令行

    在使用Hive进行数据查询和操作时,有时候我们需要退出Hive命令行界面,本文将介绍如何在Linux系统中退出Hive命令行,文中通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-11-11
  • Linux查看端口占用情况的常用命令

    Linux查看端口占用情况的常用命令

    这篇文章主要给大家介绍了Linux查看端口占用情况的常用命令,lsof命令,netstat命令,ss命令,fuser命令,ps命令以及proc文件系统这几种常用命令,感兴趣的小伙伴跟着小编一起来看看吧
    2023-11-11
  • Shell脚本之网段ip在线情况

    Shell脚本之网段ip在线情况

    本文介绍了一种使用Shell脚本的方法,用于检测特定网段(192.168.100.0/24)内所有IP地址的在线状态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • shell脚本连接并重启远程服务器的方法

    shell脚本连接并重启远程服务器的方法

    这篇文章主要介绍了shell脚本连接并重启远程服务器方法,需要的朋友可以参考下
    2017-03-03
  • 在Linux上列出磁盘信息的七个命令详解

    在Linux上列出磁盘信息的七个命令详解

    在 Linux 系统上,了解系统中的磁盘信息对于系统管理员和用户来说都是至关重要的,通过了解系统上的磁盘情况,可以有效管理存储空间、诊断问题并进行性能优化,本文给大家介绍了在Linux上列出磁盘信息的七个命令,需要的朋友可以参考下
    2024-05-05
  • Shell脚本实现监控MySQL主从同步

    Shell脚本实现监控MySQL主从同步

    这篇文章主要介绍了Shell脚本实现监控MySQL主从同步,此脚本应该能适应各种各样不同的内外网环境,并同时监控MySQL运行状态,需要的朋友可以参考下
    2015-01-01

最新评论