Linux运维必备:sort 命令快速上手指南

打印 上一主题 下一主题

主题 934|帖子 934|积分 2802

作为运维工程师,处置惩罚日记、分析数据是屡见不鲜。sort命令是Linux中高效整理文本的神器,能快速对文件内容排序、去重、统计。本文用最简洁的方式,帮你掌握sort的核心用法。
一、底子排序:秒杀杂乱文本
  1. # 默认按字典序升序排列(文件/输入流)
  2. sort filename.txt
  3. # 示例:对日志时间排序(假设第一列为时间)
  4. sort /var/log/nginx/access.log
复制代码
二、实用参数:精准控制排序


  • 按数值排序
    处置惩罚数字时,务必用-n,避免"10"排在"2"背面!
    1. sort -n numbers.txt
    复制代码
  • 逆序排列
    -r实现从大到小或从Z到A:
    1. sort -nr large_numbers.txt  # 数值逆序
    复制代码
  • 按指定列排序
    用-k选择列,-t指定分隔符(如逗号、冒号):
    1. # 按第2列(数值)排序CSV文件
    2. sort -t',' -k2n data.csv
    复制代码
  • 去重
    -u快速清理重复行(需先排序):
    1. sort -u ips.txt > unique_ips.txt
    复制代码
  • 忽略巨细写
    -f让"Apple"和"apple"视为相同:
    1. sort -f mixed_case.txt
    复制代码
三、运维实战场景

1. 统计日记IP访问频率
  1. cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr
复制代码

  • 步骤拆解

    • awk提取IP列
    • sort排序以便uniq统计
    • uniq -c计数
    • sort -nr按访问量倒序

2. 按内存占用排序进程
  1. ps aux --sort=-%mem | head -n 10
复制代码

  • --sort=-%mem等价于sort -k4nr(按第4列内存倒序)
3. 合并多个已排序文件
  1. sort -m file1.txt file2.txt > merged.txt
复制代码

  • -m(merge)服从远高于重新排序大文件
四、避坑指南


  • 性能优化
    处置惩罚超大文件时,可用-T指定临时目录(避免默认分区空间不敷):
    1. sort -T /mnt/big_disk/tmp/ huge_file.txt
    复制代码
  • 语言环境
    非英文排序非常时,设置LC_ALL=C禁用当地化规则:
    1. LC_ALL=C sort file.txt
    复制代码
  • 稳固排序
    若需保留等值行的原始顺序,加-s(stable sort)。
五、总结

sort + awk/uniq等命令组合,是运维分析数据的瑞士军刀。掌握核心参数:
-n(数值)、-k(列)、-t(分隔符)、-r(逆序)、-u(去重),即可应对90%的排序需求。
记住: 处置惩罚数据前,先用head或sample.txt测试命令,避免直接操作大文件翻车!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表