作为运维工程师处理日志、分析数据是家常便饭。sort命令是Linux中高效整理文本的神器能快速对文件内容排序、去重、统计。本文用最简洁的方式帮你掌握sort的核心用法。一、基础排序秒杀杂乱文本1234# 默认按字典序升序排列文件/输入流sortfilename.txt# 示例对日志时间排序假设第一列为时间sort/var/log/nginx/access.log二、实用参数精准控制排序按数值排序处理数字时务必用-n避免10排在2后面1sort-n numbers.txt逆序排列-r实现从大到小或从Z到A1sort -nr large_numbers.txt # 数值逆序按指定列排序用-k选择列-t指定分隔符如逗号、冒号12# 按第2列数值排序CSV文件sort-t,-k2n data.csv去重-u快速清理重复行需先排序1sort-u ips.txt unique_ips.txt忽略大小写-f让Apple和apple视为相同1sort-f mixed_case.txt三、运维实战场景1. 统计日志IP访问频率1cataccess.log |awk{print $1}|sort|uniq-c |sort-nr步骤拆解awk提取IP列sort排序以便uniq统计uniq -c计数sort -nr按访问量倒序2. 按内存占用排序进程1psaux --sort-%mem |head-n 10--sort-%mem等价于sort -k4nr按第4列内存倒序3. 合并多个已排序文件1sort-m file1.txt file2.txt merged.txt-mmerge效率远高于重新排序大文件四、避坑指南性能优化处理超大文件时可用-T指定临时目录避免默认分区空间不足1sort-T/mnt/big_disk/tmp/huge_file.txt语言环境非英文排序异常时设置LC_ALLC禁用本地化规则1LC_ALLCsortfile.txt稳定排序若需保留等值行的原始顺序加-sstable sort。五、总结sortawk/uniq等命令组合是运维分析数据的瑞士军刀。掌握核心参数-n数值、-k列、-t分隔符、-r逆序、-u去重即可应对90%的排序需求。记住处理数据前先用head或sample.txt测试命令避免直接操作大文件翻车