Linux之sed命令详解及实践

1、定义

sed全称是:stream editor 流编辑器

对文件的操作无非就是"增删改查",**sed命令就是实现对文件的"增删改查"。**

**man sed//man 的解释**

用于过滤和转换文本的流编辑器

2、功能

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据。

3、sed与vi的区别

vi 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。

sed 采用的是流编辑模式(非交互式编辑器),最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。

4、sed工作原理

(1)sed 会一次处理一行内容。

(2)处理时,把当前处理的行存储在临时缓冲区中,成为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

(3)文件内容并没有改变,除非你使用重定向存储输出。

5、语法

sed -hnV -e\ -f\ 文本文件

sed 选项 脚本命令 文件名

选项部分,常见选项包括 -n,-e,-i,-f,-r选项。

(1)-e 如果需要用sed对文本内容进行多种操作,则需要执行多条子命令来进行操作。

(2)-f 指定sed脚本的文件名

如果命令操作比较多的时候就会比较麻烦,这时候把多个子命令操作写入脚本文件,然后使用 -f 选项来指定该脚本

(3)-n 取消默认的输出

默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽自动输出,需使用 print 命令来完成输出。

(4)-i 此选项会直接修改源文件,要慎用。

脚本命令,常见包括: 增a 删d 改s(替换) 插入i 打印p 取代c

(1)a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

(2)c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

(3)d :删除,因为是删除啊,所以 d 后面通常不接任何内容;

(4)i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

(5)p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~只输出被替换命令修改过的行

(6)s :取代,可以直接进行取代的工作. s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

6、示例及说明

本节知识:

实操:

(1)查找并替换每行第一个"hello"为"你好":sed 's/hello/你好/' 1.txt

(2)查找替换每行中所有"hello"为"你好":sed 's/hello/你好/g' 1.txt

(3)删除含有"hello"的行:sed '/hello/d' 1.txt

(4)删除第2行:sed '2d' 1.txt

(5)删除最后一行:sed '$d' 1.txt

(6)删除第2行到最后一行:sed '2,$d' 1.txt

相关推荐
lzx_0021 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨2 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土2 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
GeW3 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
女神下凡6 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
12.=0.7 小时前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu7 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶8 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW8 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
OPEN-F8 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu