新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux sed命令详解:从基础到高级应用

发布时间:2026/10/26 9:39:59来源:尧图网络
Linux sed命令详解:从基础到高级应用
1. Shell脚本中的sed命令概述sedStream Editor是Linux/Unix系统中一个强大的流式文本编辑器它通过简洁的命令实现对文本的非交互式编辑。与vim等交互式编辑器不同sed特别适合在脚本中进行批量文本处理。RHCSE认证考试中sed是Shell脚本部分的重点考察对象主要测试考生对文本模式匹配和转换的掌握程度。我第一次在生产环境使用sed是为了批量修改500多台服务器的配置文件。当时需要将所有的Timeout300改为Timeout600手动操作根本不现实。sed配合for循环只用一行命令就解决了问题这让我深刻体会到它的威力。注意sed默认不会直接修改原文件而是将处理结果输出到标准输出。要直接修改文件需要显式使用-i选项。2. sed基础语法与工作模式2.1 基本命令格式sed的标准调用格式如下sed [选项] 地址范围/操作命令/参数 文件名一个实际的替换示例# 将file.txt中所有的old替换为new sed s/old/new/g file.txt选项部分常用的有-n静默模式只输出处理过的行-i直接修改文件内容危险但实用-e连接多个编辑命令2.2 地址范围详解sed的强大之处在于它可以精确控制处理哪些行单行处理sed 5s/pattern/replace/ file # 只处理第5行行范围处理sed 10,20s/pattern/replace/ file # 处理10到20行模式匹配sed /start/,/end/s/pattern/replace/ file # 处理从包含start到包含end的所有行步进选择sed 1~2s/pattern/replace/ file # 处理所有奇数行(1,3,5...)2.3 常见操作命令命令功能示例s替换s/old/new/gp打印5p (打印第5行)d删除/pattern/da追加5a\text (在第5行后追加)i插入/pattern/i\text (在匹配行前插入)c整行替换/pattern/c\newline3. sed高级应用技巧3.1 分组与反向引用sed支持使用\(\)进行分组匹配并通过\1,\2等引用# 将姓 名格式改为名, 姓 echo 张 三 | sed s/\([^ ]*\) \([^ ]*\)/\2, \1/ # 输出三, 张这个技巧在重排日志格式时特别有用。我曾经用这个功能将Apache日志从通用日志格式(CLF)转换为组合日志格式(Combined)。3.2 多命令组合使用-e可以组合多个命令或者用分号分隔# 两种多命令组合方式 sed -e s/foo/bar/ -e s/baz/qux/ file sed s/foo/bar/; s/baz/qux/ file更复杂的例子同时执行替换和删除# 将包含error的行中的old替换为new并删除所有空行 sed /error/s/old/new/g; /^$/d logfile3.3 保持空间与模式空间sed有两个缓冲区模式空间处理当前行的临时工作区保持空间长期存储的缓冲区相关命令h/H将模式空间复制/追加到保持空间g/G将保持空间复制/追加到模式空间x交换两个空间内容示例反转文件行序sed -n 1!G;h;$p file.txt4. 实战案例解析4.1 日志文件处理处理Nginx访问日志提取特定时间段的请求# 提取2023-01-15 14:00到15:00的日志 sed -n /15\/Jan\/2023:14:[0-5][0-9]:[0-5][0-9]/,/15\/Jan\/2023:15:[0-5][0-9]:[0-5][0-9]/p access.log4.2 配置文件批量修改批量修改多台服务器的SSH配置# 禁用root登录并修改端口 sed -i s/^#PermitRootLogin.*/PermitRootLogin no/; s/^#Port 22/Port 2222/ /etc/ssh/sshd_config4.3 数据清洗与转换清理CSV文件中的非法字符# 移除所有非打印字符将多个连续逗号变为单个 sed -e s/[[:cntrl:]]//g -e s/,,\/,/g data.csv clean.csv5. 常见问题与解决方案5.1 特殊字符处理处理包含斜杠的字符串时可以使用其他分隔符# 替换路径中的/usr/local为/opt sed s|/usr/local|/opt|g config.file5.2 性能优化技巧处理大文件时尽量使用地址范围缩小处理范围避免不必要的分组和反向引用将多个操作合并到一个sed命令中5.3 备份策略使用-i选项时建议同时指定备份后缀# 修改文件并自动创建.bak备份 sed -i.bak s/old/new/ file6. RHCSE考试重点解析根据多年经验RHCSE考试中sed部分常考基本替换操作s命令行寻址技巧数字范围、模式匹配多命令组合使用文件原地修改-i选项分组和反向引用典型考题示例 将/etc/passwd中所有用户的shell从/bin/bash改为/bin/sh但保留root用户不变解决方案sed /^root/!s/\/bin\/bash$/\/bin\/sh/ /etc/passwd7. 个人实战经验分享在多年的Linux系统管理工作中我总结了几个sed的黄金法则先测试再修改永远先不加-i运行命令确认输出符合预期后再实际修改文件使用版本控制对重要配置文件的修改即使使用sed也应该先提交到git或备份注释复杂命令在脚本中使用复杂sed命令时一定要添加注释说明其作用性能考量处理超过100MB的文件时考虑使用awk或专门工具替代一个真实案例有次我需要从数千个HTML文件中提取特定div内容。最初尝试用sed但当文件很大时性能很差。后来改用# 对小文件使用sed sed -n /div idcontent/,/\/div/p file.html # 对大文件改用专门的HTML解析工具这个经验告诉我工具要因地制宜sed虽强但不是万能的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/25 3:20:41

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/25 3:43:49

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/25 4:02:17

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/25 5:03:13

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/25 3:54:32

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/25 5:32:24

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉