首页 / Linux 命令行入门教程 / 30. cut 与 sort

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 按列排。原文件都不动。