当前位置: 首页 > news >正文

高效文本处理:cut、sort、uniq 和 tr 命令详解与实战

前言

🔪 一、cut —— 按列或字符截取

常用选项:

示例:

🔄 二、sort —— 排序(默认按行首字符升序)

常用选项:

示例:

🧼 三、uniq —— 去除连续重复行

常用选项:

示例:

实战:查看登录用户

🔁 四、tr —— 字符替换、删除与压缩

常用选项:

示例:

🧩 五、实战组合应用

① 统计当前连接的主机数

② 统计当前主机的连接状态

🧠 六、总结

前言

在日常的 Linux 系统管理和数据处理中,我们经常需要对文本进行提取、排序、去重和替换等操作。cutsortuniq 和 tr 正是四个非常实用的命令行工具,熟练掌握它们可以极大提升文本处理的效率。本文将详细介绍这几个命令的用法,并通过实例演示如何灵活运用。


🔪 一、cut —— 按列或字符截取

cut 命令常用于从文本中提取指定字段,支持按字节、字符或字段进行截取。

常用选项:

  • -b:按字节截取

  • -c:按字符截取(推荐用于中文)

  • -d:指定分隔符(默认为 TAB)

  • -f:指定要提取的字段(需与 -d 搭配使用)

示例:

bash

# 提取 /etc/passwd 中的用户名(第1列)
cut -d':' -f1 /etc/passwd# 提取 UID(第3列)
cut -d':' -f3 /etc/passwd# 同时提取用户名和 UID
cut -d':' -f1,3 /etc/passwd# 提取每行的第2个字符
cut -c 2 name.txt# 处理中文字符(推荐使用 -c)
cat name.txt | cut -c 2

⚠️ 注意:cut 最适合处理以单个字符作为分隔符的文本。


🔄 二、sort —— 排序(默认按行首字符升序)

sort 用于对文本行进行排序,支持按数值、字典序、指定字段等多种方式排序。

常用选项:

  • -t:指定分隔符

  • -k:指定排序字段

  • -n:按数值排序(默认是字典序)

  • -r:降序排列

  • -u:去重(等同于 uniq

  • -o:将结果输出到文件

示例:

bash

# 按第一列升序排序
sort passwd.txt# 按第3列数值升序(冒号分隔)
sort -n -t: -k3 passwd.txt# 按第3列数值降序
sort -nr -t: -k3 passwd.txt# 去重并保存结果
sort -u passwd.txt -o sorted.txt

🧼 三、uniq —— 去除连续重复行

uniq 用于去除相邻的重复行,通常需要先使用 sort 排序以确保全局去重。

常用选项:

  • -c:统计每行重复次数

  • -d:仅显示重复的行

  • -u:仅显示不重复的行

示例:

bash

# 创建示例文件
cat fruit.txt
apple
apple
peache
pear
banana
cherry
cherry
banana
orange# 去除相邻重复行
uniq fruit.txt# 全局去重
sort fruit.txt | uniq# 统计每行出现次数
sort fruit.txt | uniq -c# 只显示重复的行
sort fruit.txt | uniq -d# 只显示不重复的行
sort fruit.txt | uniq -u

实战:查看登录用户

bash

# 查看当前登录用户
who | awk '{print $1}' | uniq# 查看所有登录过系统的用户
last | awk '{print $1}' | sort | uniq | grep -v "^$" | grep -v wtmp


🔁 四、tr —— 字符替换、删除与压缩

tr 主要用于单个字符的替换、删除或压缩重复字符,不支持字段级操作。

常用选项:

  • -d:删除指定字符

  • -s:压缩连续重复字符(只保留一个)

示例:

bash

# 小写转大写
cat fruit.txt | tr 'a-z' 'A-Z'# 替换字符(一一对应)
cat fruit.txt | tr 'apple' 'APPLE'# 替换 a 为斜杠
tr 'a' '/' < fruit.txt# 删除所有 a
tr -d 'a' < fruit.txt# 删除换行符
tr -d '\n' < fruit.txt# 压缩连续 p 为一个
tr -s 'p' < fruit.txt



🧩 五、实战组合应用

① 统计当前连接的主机数

bash

ss -nt | tr -s " " | cut -d " " -f5 | cut -d ":" -f1 | sort | uniq -c
  • ss -nt:查看 TCP 连接(不解析服务名)

  • tr -s " ":压缩多余空格

  • cut -d " " -f5:提取第5列(IP:端口)

  • cut -d ":" -f1:提取 IP 地址

  • sort | uniq -c:排序并统计每个 IP 的出现次数

② 统计当前主机的连接状态

bash

ss -nta | grep -v '^State' | cut -d" " -f1 | sort | uniq -c


🧠 六、总结

  • cut —— 截列

  • sort —— 排序

  • uniq —— 去重(需先排序)

  • tr —— 替换 / 删除 / 压缩


熟练掌握这四个命令,你将能轻松应对日常工作中大多数的文本处理任务。建议多加练习,灵活组合使用,提升命令行操作效率。


文章转载自:

http://ekyxTTlb.jcypk.cn
http://b1WBRagw.jcypk.cn
http://c6I8hfHc.jcypk.cn
http://lP4wadZE.jcypk.cn
http://4kvl4i65.jcypk.cn
http://guQqsUe8.jcypk.cn
http://VmhbPngD.jcypk.cn
http://S5BWczJj.jcypk.cn
http://k2EThSK3.jcypk.cn
http://64MNi8Pf.jcypk.cn
http://M1594yc9.jcypk.cn
http://qe3uPiml.jcypk.cn
http://yfhbCFoH.jcypk.cn
http://rMwExnmn.jcypk.cn
http://xka80zGk.jcypk.cn
http://hv2v5PuK.jcypk.cn
http://KZnQkDN1.jcypk.cn
http://itwNBRIi.jcypk.cn
http://mv3qifCd.jcypk.cn
http://VJJ9g6g2.jcypk.cn
http://UrZjp1eC.jcypk.cn
http://ZvldO1Aq.jcypk.cn
http://v7YUTQod.jcypk.cn
http://iU5Npucc.jcypk.cn
http://xYOpAMwI.jcypk.cn
http://th4uwRlB.jcypk.cn
http://JTa1Ql1V.jcypk.cn
http://Tl55GMLg.jcypk.cn
http://GL8PVicI.jcypk.cn
http://CsRUDFh6.jcypk.cn
http://www.dtcms.com/a/365366.html

相关文章:

  • 巨头撤退,玩家内卷!2025,IoT平台的生死劫与重生路
  • raspberry Pi 4B(树莓派4B)开启VNC服务 主机用VNC连接
  • Radiant Photo 2.1.0.756 +扩展插件 图像AI增强修饰
  • 时间感知认知诊断模型:原理与实施步骤
  • Vite 环境变量与全局变量详解
  • Java 技术支撑 AI 系统落地:从模型部署到安全合规的企业级解决方案(三)
  • 什么是好的系统设计
  • 虚拟机详细图文教程系列14、Linux虚拟机Centos8系统下载安装Python-Pycharm
  • 【QT随笔】巧用事件过滤器(installEventFilter 和 eventFilter 的组合)之 QComboBox 应用
  • 标准化与定制化的平衡艺术:制造企业如何通过灵活配置释放系统价值
  • 嵌入式第四十五天(51单片机相关)
  • TDD测试驱动开发+Python案例解析
  • SkyWalking 支持的告警通知方式(Alarm Hooks)类型
  • 吱吱企业通讯软件以安全为核心,构建高效沟通与协作一体化平台
  • 驱动开发系列69 - GLSL编译器实现 - 符号表的定义
  • 【SQL Server 2022】保姆级SQL Server 详细图文下载安装教程
  • Unity学习----【进阶】Addressables(一)--概述与简单的使用
  • 涉私数据安全与可控匿名化利用机制研究(上)
  • 代码随想录算法训练营第四十三天|LeetCode300. 最长递增子序列,LeetCode674. 最长连续递增序列,LeetCode718. 最长重复子数组
  • 【C语言数组操作:从指针到下标访问】
  • 【微信小程序预览文件】(PDF、DOC、DOCX、XLS、XLSX、PPT、PPTX)
  • 1分钟生成爆款相声对话视频!Coze智能体工作流详细搭建教程,小白也能轻松上手
  • daily notes[9]
  • 【音视频】FMP4 介绍
  • 从 MMLU 到 HumanEval:为什么评估大型语言模型(LLM)的基准至关重要?
  • 策略模式 + 工厂模式
  • 海伯森检测应用案例之--光学板轮廓及瑕疵检测
  • 嵌入式 Linux 启动流程详解 (以 ARM + U-Boot 为例)
  • [Ai Agent] 打造一个真正可落地的客服智能体
  • 论文理解:Reflexion: Language Agents with Verbal Reinforcement Learning