当前位置:首页>Linux>Linux基础 | cut 命令使用指南:快速提取文本字段的利器

Linux基础 | cut 命令使用指南:快速提取文本字段的利器

  • 2026-09-03 00:09:53
Linux基础 | cut 命令使用指南:快速提取文本字段的利器
在 Linux 日常运维和数据处理中,我们经常需要从一段文本中提取指定字段。
例如:
从日志中提取IP地址
从 CSV 文件中获取某一列数据
从命令输出中获取用户名或端口号
比如有这样一段数据:
user1:1001:/home/user1
user2:1002:/home/user2
user3:1003:/home/user3
如果我们只想提取用户名,该怎么做?
这时就需要一个非常实用的文本处理工具:cut
cut 是 Linux 中用于按字段或字符位置提取数据的命令,在日志分析、脚本编写和数据处理场景中非常常见。
一句话理解:cut 用于从文本中“切割”出指定字段。

一、cut 命令基本语法

基本格式:
cut [选项] 文件
常见用法:
命令 | cut [选项]
cut 支持三种切割方式:
方式
说明
-c
按字符位置切割
-d
指定分隔符
-f
指定字段
最常见的组合是:
cut -d 分隔符 -f 字段

二、按字符位置提取(-c)

如果文本结构固定,可以按字符位置提取。
示例:
echo "LinuxCommand" | cut -c 1-5
输出:Linux
解释:
-c 1-5 表示提取第1到第5个字符
再看一个例子:
echo "abcdefg" | cut -c 2-4
输出:bcd
这种方式适合固定长度数据处理。

三、按分隔符提取字段(最常用)

现实中很多文本是通过某个符号分隔的,例如:
:
,
|
这时就可以使用:
cut -d 分隔符 -f 字段号
示例:
echo "user1:1001:/home/user1" | cut -d ":" -f 1
输出:
user1
解释:
-d ":"  指定分隔符
-f 1    表示第一列

四、提取多个字段

cut 还可以提取多个字段。
示例:
echo "user1:1001:/home/user1" | cut -d ":" -f 1,3
输出:user1:/home/user1
如果想提取连续字段:
cut -d ":" -f 1-2
结果:user1:1001

五、分析系统用户信息(实战)

Linux 系统用户信息存储在:/etc/passwd
结构示例:
root:x:0:0:root:/root:/bin/bash
如果只想查看系统用户名:
cut -d ":" -f 1 /etc/passwd
输出:

root

daemon

bin

sys

如果想查看用户 shell:
cut -d ":" -f 7 /etc/passwd
输出:

/bin/bash

/sbin/nologin

这是系统管理中非常常见的操作。

六、处理 CSV 文件

假设有一个 CSV 文件:

name,age,city

Tom,25,Beijing

Jerry,30,Shanghai

如果只想提取姓名:
cut -d "," -f 1 data.csv
输出:

name

Tom

Jerry

提取城市:
cut -d "," -f 3 data.csv
输出:

city

Beijing

Shanghai

这种操作在数据处理和日志分析中非常常见。

七、结合管道进行日志分析

来看一个典型的日志处理案例。
查看 SSH 登录日志:
cat auth.log
示例内容:
Accepted password for user1 from 192.168.1.10
Accepted password for user2 from 192.168.1.20
如果想提取 IP 地址,可以这样:
cat auth.log | cut -d " " -f 6
输出:
192.168.1.10
192.168.1.20
再配合其他命令,例如:
cut -d " " -f 6 auth.log | sort | uniq
就可以快速统计访问 IP。

八、cut 的常见限制

需要注意:
cut适合结构规则的数据。
如果数据结构复杂,例如:
多个空格
不固定字段
通常会使用更强大的工具:
awk
sed
例如:
awk '{print $1}'
但对于简单场景来说,cut更轻量、更快。

九、小结

cut 是 Linux 文本处理工具中非常重要的一员,主要用于字段提取。
核心功能包括:
按字符位置提取
按分隔符提取字段
提取多个字段
处理 CSV 和日志数据
常用参数总结:
参数
作用
-c
按字符位置切割
-d
指定分隔符
-f
指定字段
一句话总结:cut 就像一把“文本剪刀”,可以快速从数据中剪出你需要的部分。
在实际工作中,它经常与以下命令一起使用:
  • grep
  • sort
  • uniq
  • awk
形成强大的Linux文本处理工具链。

最新文章

随机文章