Linux 命令行入门教程
30. cut 与 sort
本教程共 90 篇 · 第 30 篇
30. cut 与 sort
两个命令都围着”列”和”顺序”转。cut 截取某些列,sort 把行排好序。
cut 按字段(列)切出你想要的部分。默认以制表符分列,多数文件不是它,得用 -d 指定。
假设文件以空格分隔,取出第一列:
cut -d " " -f 1 data.txt
-d " " 设空格为分隔符,-f 1 取第 1 列。取多列用逗号:-f 1,3。
也能按字符位置切,-c 按字符而非列:
cut -c 1-5 data.txt
这会取每行第 1 到第 5 个字符。
sort 排序
sort 把行按字典序排好,不改变原文件:
sort names.txt
想按数字大小排,得加 -n,否则 10 会排在 2 前面:
sort -n scores.txt
-r 反向,从大到小:
sort -rn scores.txt
按指定列排序
表格数据用 -k 选排第几列,-t 设分隔符:
sort -t " " -k 3 data.txt
按第 3 列排序。日志分析里这招很常用。
Tip两者常串进管道:
cut -d " " -f 1 data.txt | sort,先抽列再排序,一步到位。
小结:cut -d " " -f 1 抽列,sort -n 数字排序、-r 反向、-k 按列排。原文件都不动。