您的位置:首页 > 财经 > 产业 > 动态网站建设网站_有创意的网络公司名字大全_怎么做微信小程序_如何做好推广引流

动态网站建设网站_有创意的网络公司名字大全_怎么做微信小程序_如何做好推广引流

2025/2/27 13:12:02 来源:https://blog.csdn.net/It_BeeCoder/article/details/145884166  浏览:    关键词:动态网站建设网站_有创意的网络公司名字大全_怎么做微信小程序_如何做好推广引流
动态网站建设网站_有创意的网络公司名字大全_怎么做微信小程序_如何做好推广引流

一、功能介绍

sed的全称是Stream EDitor,中文意思为流编辑器,是Linux系统中文本处理三剑客之一,其它两个是grep和awk,grep命令功能及其用法在前两篇文章《Linux中grep命令功能及用法详解》和《Linux系统常用命令用法详解》中已经做了很详细的介绍,有需要的读者可以点击查看原文。Linux系统中一切皆文件,对Linux的操作就是对文件的处理,用户要更好的处理文件,就要用到我们上面提到的三剑客命令。三剑客命令的主要负责功能为:grep主要用于查找,sed用于读取行和替换。awk用于取列。

Linux的sed命令是利用脚本来处理文本文件,sed 可依照脚本的指令来处理、编辑文本文件。该命令对输入文件进行流式处理,也就是逐行读取输入文件的内容(文件或管道),处理后输出,不直接修改源文件(除非使用 -i 选项)。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

sed命令是Linux系统中非常强大的文本处理工具,常用于文本替换、删除、插入等操作,使用sed命令可以提高文本处理的效率。通过结合正则表达式和多个编辑命令,可以实现更复杂的文本操作。关于Linux系统中的正则表达式的语法及各种符号的含义,在《Linux中grep命令功能及用法详解》中有详细的介绍,本文不再赘述,有需要的可移步该文章查看。

Sed命令常用于日志处理、配置修改、数据清洗等, 主要功能包括: 1)文件中的文本替换(如 s/old/new/g);2)行删除/插入/追加(d, i, a);3)多命令组合(支持复杂逻辑);4)基于地址定界(行号或正则匹配)。

欢迎关注工 众 号:ItBeeCoder,查看更多高质量技术文章,发送“ds”获取 deepseek 资 料

在这里插入图片描述

二、基本语法

sed [选项] '脚本命令'  文件名
sed [选项] -e '命令1' -e '命令2' 输入文件名  # 多命令
sed [选项] -f 脚本文件 输入文件名          # 从文件读取命令

三、选项参数说明

-n, --quiet, --silent:取消自动打印模式空间,抑制默认输出,仅打印处理的行,常与 -p` 选项配合使用
-p ∶列印,即将某个选择的资料印出
-e <脚本>, --expression=脚本:添加“脚本”到程序的运行列表,多个命令时使用该选项
-f <脚本文件>, --file=脚本文件:添加“脚本文件”到程序的运行列表,用于从文件中读取编辑命令
--follow-symlinks:直接修改文件时跟随软链接-i[扩展名], --in-place[=扩展名]:直接在原文件修改文件(如果指定扩展名就备份文件)-l N, --line-length=N:指定“l”命令的行长度(处理长行时使用) 
--posix:关闭所有 GNU 扩展-r, --regexp-extended:在脚本中使用扩展正则表达式,支持 `+`, `?`, `|` 等-s, --separate:将输入文件视为各个独立的文件而不是一个长的连续输入
-u, --unbuffered:从输入文件读取最少的数据,更频繁的刷新输出
--help:打印帮助并退出
--version:输出版本信息并退出
-a ∶新增内容,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
-c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
-d ∶删除,因为是删除,所以 d 后面通常没有任何内容
-i ∶插入内容,i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)-s ∶取代,可以直接进行取代的工作!通常-s 搭配正规表达式一起使用

注:Sed命令后如果没有给出 -e, --expression, -f, 或 --file 选项,则第一个非选项参数将被视为要解释的 sed 脚本。所有剩余的 输入都将被视为输入文件名;如果没有指定输入文件,则读取标准输入。

欢迎关注工 众 号:ItBeeCoder,查看更多高质量技术文章,发送“ds”获取 deepseek 资 料

四、常用用法示例

1、替换命令(s)

1)替换某个字符串
Sed命令可用于将文本中的某个字符串替换为另一个字符串,命令格式为:

sed 's/原字符串/新字符串/[flags]' 文件
s/模式/替换内容/[flags]

flags是可选的,具体值有:

 (a) `g`:全局替换,默认情况下每行只替换第一个匹配到的内容,  `g`表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写
(b)`p`:替换后打印该行(需与 `-n` 配合)。
(c)`i`:忽略大小写。

例1:

echo "hello world" | sed 's/world/linux/'        # 输出 "hello linux"sed 's/a/A/2' file.txt                           # 每行第二个a替换为A

在这里插入图片描述
在这里插入图片描述

例2:将文件file.txt中的第一个匹配项“old”替换为“new”。

sed 's/old/new/' file.txt                                                                                                                 

在这里插入图片描述

例3:将testfile.txt中的第一个b替换为B:

sed 's/b/B/' testfile.txt  

在这里插入图片描述

例4:批量替换文件内容:
a)将testfile.txt中的所有数字替换为好的,会编辑原文件

sed -i 's/[0-9]/好的/g' testfile.txt  

在这里插入图片描述

b)将文件testfile.txt中的所有“unhappy”替换为“happy”,并将结果重定向输出到testfileNew.txt

sed 's/unhappy/happy/g' testfile.txt>  testfileNew.txt    

2)替换某行内容

命令格式1:sed '行号c 新字符串' 文件名
命令格式2:sed '起始行号,终止行号c 新字符串' 文件名

2、删除命令(d)

删除命令用于删除指定的行或匹配的行,例如:

sed '3d' file.txt         # 删除文件file.txt中的第3行
sed '/error/d' file.txt   # 删除含"error"的行
sed '1,5d' file.txt       # 删除1-5行    
sed $d testfile.txt  # 若要删除文件的最后一行

在这里插入图片描述

3 插入命令(i)

插入命令用于在指定行之前插入新内容。
例如:在文件file.txt的第三行之前插入“新插入内容”

sed '3i\新插入内容' file.txt      

在这里插入图片描述

4、追加命令(a)

追加命令用于在指定行之后追加新内容。
例如:在文件file.txt的第三行之后追加“new line”

sed '3a\new line' file.txt                                                                                                              
sed '/pattern/a\new content' file.txt    # 在匹配行后追加

5、行操作命令

1)打印命令(p):该命令用于显示指定的行或匹配的行。例如:显示文件file.txt中的第1到5行,配合 -n 使用,

 sed -n '1,5p' file.txt

2)转换字符 y:sed ‘y/abc/ABC/’ file.txt(类似 tr命令)。 3)写文件wsed -n ‘/error/w error.log’ file.txt` 将匹配行写入文件。
在这里插入图片描述

6、多命令组合

命令格式:sed -e 命令1 -e 命令2 -e 命令3
一些场景中有多个替换条件,可以使用“-e”参数将这些替换条件连接起来,一次性完成所有的替换操作。
例1:将上述的两种命令连接起来:“sed -e ‘s/原字符串/新字符串/’ ‘行号c 新字符串’ 文件”。

sed -e 's/b/B/g' -e '3,4c this is new Test' testfile.txt    

注意:这里的/可以由@替换

例2::将文件file.txt中的“old”替换为“new”,然后删除第二行。

sed -e 's/old/new/' -e '2d' file.txt    sed -e 's/foo/bar/' -e '5d' file.txt
sed '3 {s/foo/bar/; s/baz/qux/}' file.txt  # 对第3行执行多个命令

在这里插入图片描述

7、搭配正则表达式使用

sed支持正则表达式,可以进行更复杂的匹配和替换操作。例如:将文件file.txt中的三个连续数字替换为相同的数字。

sed 's/[0-9]\{3\}/&/' file.txt                                                                                                         
sed '/^$/d' file.txt                # 删除空行
sed '/^#/d' config.conf             # 删除注释行(以#开头)

8、直接修改文件

使用-i选项可以直接修改文件内容,而不需要输出到标准输出。例如:将文件file.txt中的“old”替换为“new”。

sed -i 's/old/new/' file.txt      

9、在管道中使用sed

在打印文件file.txt之前,先使用pr命令添加页码,然后使用sed命令进行替换,最后使用enq命令打印已编辑的列表。

pr file.txt | sed 's/blue/red/g' | enq                     

10、分支与循环

  • :label 定义标签,b label 跳转,t 条件跳转。
sed ':loop; s/foo/bar/2; t loop' file.txt  # 替换每行第二个foo,直到无匹配

11、使用sed命令处理特殊字符

sed 's/\/path\/to/\/new\/path/' file.txt        # 转义斜杠
sed 's|/path/to|/new/path|' file.txt            # 使用|作为分隔符

12、显示选定的行(-n选项)

显示文件file.txt中包含“word”的行。

sed -n '/word/p' file.txt      

欢迎关注工 众 号:ItBeeCoder,查看更多高质量技术文章,发送“ds”获取 deepseek 资 料

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com