news 2026/4/17 16:33:07

Linux:sed工具的三种最实用的用法总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux:sed工具的三种最实用的用法总结

一、原理简介

sed是一行一行读取文件内容并按照要求进行处理,把处理后的结果输出到屏
幕。

首先sed读取文件中的一行内容,把其保存在一个临时缓存区中(也称为模式空
间)
然后根据需求处理临时缓冲区中的行,完成后把该行发送到屏幕上

由于sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会直接修 改原文件
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作,对文件进行过滤
和转换操作

二、查找替换(实用)

1、不修该源文件

sed 's/ROOT/ROOTxx/g' a.txt 参数解析: s:查找 /:分隔符,可以自定义,比如用#号,那么指令就是:sed 's#ROOT#aaaxxx#g' a.txt 第一个ROOT:待查找的内容 ROOTxx:需要替换的内容 g:全局替换

2、修改源文件(不建议)

sed-i's/ROOT/ROOTxx/g'a.txt 增加一个-i参数,直接修改源文件。

三、结合正则

正则说明案例参数说明
/key/查询包含关键字的行sed -n '/root/p' 1.txtp参数:打印到控制台
/key1/,/key2/匹配包含两个关键字之间的行sed -n '/^adm/,/^mysql/p' 1.txt参数-n:禁用默认打印(仅输出p命令指定的行),建议带上。查日志常用
/key/,x从匹配关键字的行开始到文件第x行之间的行(包含关键字所在行)sed -n '/^ftp/,7p' 2.txtftp开头的行,到第7行打印出来,如果ftp所在行,在第7行之后,那么,只打印ftp所在行(打印一行内容)
x,y!不包含xy
/key/!不包括关键字的行sed -n '/bash$/!p' 1.txt不打印bash结尾的行

第二行的命令常用于查找系统日志。
举例:

查找default.out日志中,2023-01-29 02:和2023-01-29 05:两个时间戳之间的内容,并导出到rz.txt文件catdefault.out|sed-n'/2023-01-29 02:/,/2023-01-29 05:/p'>rz.txt

四、脚本批量执行

sed -f scripts.sh file//使用脚本处理文件
建议使用./sed.sh file

#!/bin/sed -f 1,5d s/root/hello/g 3i777 5i888 a999 p

脚本使用说明:
1) 脚本文件是一个sed的命令行清单。'commands'
2) 在每行的末尾不能有任何空格、制表符(tab)或其它文本。
3) 如果在一行中有多个命令,应该用分号分隔。
4) 不需要且不可用引号保护命令
5)#号开头的行为注释

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 3:51:12

医疗大模型RAG实战避坑指南:从基础到进阶,看这一篇就够了!

RAG相关理论知识与经验整理。 谈到大模型在各垂直领域中的应用,一定离不开RAG,本系列开始分享一些RAG相关使用经验,可以帮助大家在效果不理想的时候找到方向排查或者优化。 本系列以医疗领域为例,用面试题的形式讲解RAG相关知识…

作者头像 李华
网站建设 2026/4/18 3:46:23

Navicat x 达梦技术指引 | 正向工程

近期,Navicat 宣布正式支持国产达梦数据库。Navicat 旗下全能工具 支持达梦用户的全方位管理开发需求,而轻量化免费的 则满足小型和独立开发者的基础需求。 Navicat Premium 自版本 17.3 开始支持达梦 DM8 或以上版本。它支持的系统有 Windows、Linux …

作者头像 李华
网站建设 2026/4/17 20:17:34

微信登录,重定向接口,向前端返回html代码,前端通过window.open打开的微信扫码页面,html代码通过postmassage向前端的父页面发消息,请编写html部分的代码

假设你的场景是这样的: 用户在前端点击“微信登录”,用 window.open(url) 弹出一个新的窗口去做扫码登录。服务端的 重定向接口 在登录成功后,向弹出页面返回特定的 HTML 页面代码。这个 HTML 代码通过 window.opener.postMessage 向主页面&a…

作者头像 李华
网站建设 2026/4/18 14:41:04

Linux进程间通信之操作共享内存的命令

System V 共享内存系统管理命令 本文档介绍用于查看和管理 System V 共享内存段的系统命令. 查看共享内存 查看所有共享内存段 ipcs -m输出示例: ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x0000000…

作者头像 李华
网站建设 2026/4/17 21:22:31

肝客音频功放系统实战项目

在高保真音频、智能音响、车载声学及专业扩声系统快速发展的今天,音频功率放大器(功放)作为声音信号从“数字”走向“物理振动”的最后一环,其性能直接决定了听觉体验的上限。传统模拟功放虽成熟可靠,却在效率、体积、…

作者头像 李华