复制成功
请遵守本站许可
REPORT
Chapter_Post // Field_Report

Post_Ref: RL-LINUX每日命

2026.04.08

Linux每日命令-38-cut

Echo HaoRan
Echo HaoRan
#计划任务
ANALYSIS

Linux 每日一篇 - 38 - cut#

Linux 文本截取神器!掌握 cut 命令,轻松提取文本字段,让数据处理更高效!

cut 命令是什么?#

cut 命令是 Linux 中用于从文本文件的每一行中提取指定字段或字符的工具。它可以按字节、字符或字段(以分隔符分隔)来截取文本内容,是数据处理和文本分析的重要工具。

基本用法#

PRTCL // PLAINTEXT
# 按字节提取(-b 选项)
cut -b 1-5 filename # 提取第 1 到第 5 字节
cut -b 1,3,5 filename # 提取第 1、3、5 字节
cut -b 3- filename # 提取第 3 字节及之后的所有字节
# 按字符提取(-c 选项)
cut -c 1-10 filename # 提取第 1 到第 10 个字符
cut -c 2,5,8 filename # 提取第 2、5、8 个字符
cut -c 5- filename # 提取第 5 个字符及之后的所有字符
# 按字段提取(-f 选项,配合-d 指定分隔符)
cut -f 2 -d ':' filename # 按冒号分割,提取第 2 个字段
cut -f 1,3 -d ',' filename # 按逗号分割,提取第 1 和第 3 个字段
cut -f 2-4 -d ' ' filename # 按空格分割,提取第 2 到第 4 个字段
cut -f 3- -d ':' filename # 提取第 3 个字段及之后的所有字段
# 指定分隔符(-d 选项)
cut -f 2 -d '|' filename # 使用竖线作为分隔符
cut -f 1 -d $'\t' filename # 使用制表符作为分隔符

实用技巧#

PRTCL // PLAINTEXT
# 提取多个不连续的字段
cut -f 1,3,5 -d ':' /etc/passwd
# 提取连续的多个字段
cut -f 2-5 -d ',' data.csv
# 从命令输出中提取特定字段
ps aux | cut -d ' ' -f 11 # 提取进程命令
df -h | cut -d ' ' -f 1 # 提取磁盘设备名
# 提取文件名和扩展名
ls -la | cut -d ' ' -f 9 # 提取文件名(需要进一步处理)
# 提取 IP 地址
ifconfig | grep "inet " | cut -d ' ' -f 10
# 提取用户名(从 passwd 文件)
cut -d ':' -f 1 /etc/passwd
# 提取用户 ID
cut -d ':' -f 3 /etc/passwd
# 处理 CSV 文件
cut -d ',' -f 2,4,6 data.csv
# 提取特定范围的字符
echo "Hello World" | cut -c 1-5 # 输出 "Hello"
# 从路径中提取文件名
echo "/path/to/file.txt" | cut -d '/' -f 4
# 组合使用其他命令
grep "root" /etc/passwd | cut -d ':' -f 1,3,4
# 提取文件的扩展名部分
ls *.txt | cut -d '.' -f 1

常用场景#

PRTCL // PLAINTEXT
# 从 passwd 文件中提取信息
cut -d ':' -f 1 /etc/passwd # 用户名列表
cut -d ':' -f 1,3 /etc/passwd # 用户名和用户 ID
cut -d ':' -f 5 /etc/passwd # 用户全名
# 处理日志文件
cut -d ' ' -f 1 access.log # 提取 IP 地址
cut -d ' ' -f 4-5 access.log # 提取请求时间和时区
cut -d ' ' -f 7 access.log # 提取请求路径
# 分析 CSV 数据
cut -d ',' -f 1,3 customers.csv # 提取客户名和邮箱
# 系统管理任务
ps aux | cut -d ' ' -f 1 # 提取进程用户
ps aux | cut -d ' ' -f 2 # 提取进程 ID
w | cut -d ' ' -f 1 # 提取当前登录用户
# 提取特定信息
mount | cut -d ' ' -f 1 # 提取挂载的设备
df -h | cut -d ' ' -f 1,5 # 提取设备和使用率
# 从路径中提取部分
pwd | cut -d '/' -f 4 # 提取当前目录名(取决于路径深度)
# 处理网络信息
netstat -tuln | cut -d ' ' -f 7 # 提取服务名称

高级用法#

PRTCL // PLAINTEXT
# 使用多个分隔符(需要借助其他工具)
# 用 awk 替代 cut 实现复杂分割
awk -F '[,;:]' '{print $1, $3}' file.txt
# 提取变化位置的字段
# 当分隔符位置不固定时,使用 awk 更灵活
awk -F: '{print $1, $3}' /etc/passwd
# 条件提取
# 结合 grep 和 cut
grep "bash" /etc/passwd | cut -d ':' -f 1
# 处理多字符分隔符
# 使用 awk 处理多字符分隔符
awk -F'END' '{print $1}' file.txt
# 提取字段的子串
# 先用 cut 提取字段,再用其他工具处理
echo "john:20:engineer" | cut -d ':' -f 1 | cut -c 1-2 # 输出 jo
# 在脚本中使用
#!/bin/bash
# 从配置文件中提取特定值
config_value=$(grep "^key=" config.conf | cut -d '=' -f 2)
# 处理表格数据
# 显示表格的特定列
cat table.txt | cut -c 1-10,20-30,40-50 # 提取 1-10,20-30,40-50 列
# 结合其他命令进行复杂处理
sort -t ':' -k 3,3n /etc/passwd | cut -d ':' -f 1 # 按 ID 排序后提取用户名

实际应用示例#

PRTCL // PLAINTEXT
# 示例 1: 处理学生信息表(格式:姓名:年龄:班级:分数)
# 提取姓名和班级
cut -d ':' -f 1,3 students.txt
# 示例 2: 分析网站日志
# 提取访问者 IP 和访问时间
cut -d ' ' -f 1,4-5 access.log
# 示例 3: 处理用户列表
# 提取系统用户(UID < 1000)
awk -F: '$3 < 1000 {print $1}' /etc/passwd
# 示例 4: 处理 CSV 文件
# 提取前 3 列
cut -d ',' -f 1-3 data.csv
# 示例 5: 系统监控
# 提取 CPU 使用率
top -b -n 1 | head -5 | tail -1 | tr -s ' ' | cut -d ' ' -f 3
# 示例 6: 处理程序输出
# 从 df 命令输出中提取使用率
df -h | grep -v "Filesystem" | tr -s ' ' | cut -d ' ' -f 5
# 示例 7: 数据清洗
# 从文本中提取邮箱地址的一部分
grep "@" userlist.txt | cut -d '@' -f 1

与相关命令的配合#

PRTCL // PLAINTEXT
# cut 与 awk 的比较和选择:
# cut 适合简单的字段提取
cut -d ':' -f 1 /etc/passwd
# awk 功能更强,适合复杂处理
awk -F: '$3 > 1000 {print $1}' /etc/passwd
# cut 与 grep 的配合:
grep "root" /etc/passwd | cut -d ':' -f 1,3
# cut 与 sort 的配合:
cut -d ':' -f 1 /etc/passwd | sort
# cut 与 uniq 的配合:
cut -d ' ' -f 1 access.log | sort | uniq -c
# cut 与 tr 的配合:
# 处理空格不规则的情况
cat file.txt | tr -s ' ' | cut -d ' ' -f 2

注意事项#

PRTCL // PLAINTEXT
# cut 按字节处理时,对于多字节字符(如中文)可能会截断字符
# -d 选项的分隔符只能是单个字符
# 当行中字段数少于指定字段号时,cut 不会输出任何内容
# cut 不会保留原分隔符,输出字段间以制表符分隔
# 使用-c 选项处理多字节字符更安全
# 对于复杂的分隔符,考虑使用 awk 命令
# 当字段位置不固定时,使用字符位置提取可能更合适

抖音文案#

🎯 Linuxcut 命令!

✅ 基本用法:cut ✅ 常用参数:cut -option ✅ 实用技巧:cut —help

每天一个 Linux 命令,30 天变身 Linux 高手!

#Linux 入门 #Shell 命令 #程序员必备 #技术分享


关于我#

全平台同名”汪多多是只猫”,专注分享实用技术教程,让你的 IT 学习之路更轻松!

关注我,每天一个 Linux 命令,轻松入门 Linux 系统!

R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.04.08
// END OF POST

订阅

通过 RSS 订阅本站,新文章发布时第一时间收到通知。

Follow
Classified
Chapter_06
Protocol_Ref: CC-BY-NC-SA-4.0

Linux每日命令-38-cut

Author: CHONGXIReleased: 2026.04.08

Licensed under CC BY-NC-SA 4.0

评论

© 2025-2026 EchoSpace
Powered by Astro & echohaoran Non-Collaborative_Entity // Protocol_V.4.21