千家信息网

linux中sed命令的使用方法有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"linux中sed命令的使用方法有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux中sed命令的使用方法有哪些"吧!l
千家信息网最后更新 2026年11月02日linux中sed命令的使用方法有哪些

这篇文章主要讲解了"linux中sed命令的使用方法有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux中sed命令的使用方法有哪些"吧!

linux之sed命令:

1 初识sed

sed编辑器被称作流编辑器,它和vim这种的交互式文本编辑器不同,是根据命令来处理数据流中的数据。会执行下列操作:

  • 一次从输入中读取一行数据(重复该操作直到全部行被读取完)

  • 根据编辑器命令匹配数据

  • 按照命令修改数据流中的数据

  • 将新数据输出到STDOUT(标准输出)

其中sed命令的可以从命令行中输入,也可以从一个命令文件中读取。

sed -e script 添加script中指定的命令sed -f file 添加file中指定的命令

1.1 在命令行定义sed命令

来看一个简单的文本替换示例:

echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'#修改文件sed 's/xxx/kinsomy/' data.txt#执行多个命令 用-e选项,分号隔开sed 's/xxx/kinsomy/; s/***/hhh/' data.txt

将echo输出的数据通过管道输入sed中,然后用s命令进行替换,用第二个斜杠后的数据替换掉第一个斜杠后匹配的数据。

注意:sed操作文本文件中的数据,仅仅是将修改的数据输出到STDOUT,但是并不会修改文件本身的数据

1.2 从文件读取命令

在一个文件script.sed中定义一系列的命令,方便复用。

s/*/as/x/bs/-/+
# -f选项指定命令文件sed -f script.sed data.txt

2 sed基础

2.1替换标记

上面的例子echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'只会替换每一行中匹配到的第一个数据,但是一行数据中若有多个匹配项,则不能全部被替换掉。

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/'#输出hi,my name is kinsomy, i am xxx

这个时候可以使用一些替换标记substitution flag来设置替换的模式。替换标记跟在替换字符串之后。

s/pattern/replacement/flags

数字,表示将替换掉第几处被匹配到的数据

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/2'#输出 第二个xxx被替换成kinsomyhi,my name is xxx, i am kinsomy

g,表示替换所有匹配到的数据

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/g'#输出 第二个xxx被替换成kinsomyhi,my name is kinsomy, i am kinsomy

p,表示会打印出被匹配出来的行

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/p'#输出hi,my name is kinsomy, i am xxxhi,my name is kinsomy, i am xxx
w,将替换后输出保存到指定文件echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'

2.3 行寻址

上文说到sed命令是一行行读取文本,进行匹配操作数据,知道所有行被遍历完,如果这时候我们想要对特定的行做操作就要使用行寻址。 行寻址有两种形式:

数字形式表示行

# 操作单行$ sed '2s/xxx/***/' data.txt# 操作一定行区间[2,4]$ sed '2,4s/xxx/***/' data.txt# 操作某行开始到最后[2,endline]$ sed '2,$s/xxx/***/' data.txt

文本模式过滤器

首先在/etc/passwd内找到kinsomy的记录,然后将bash替换为csh。文本模式过滤器配合正则表达式会很强大。

sed '/kinsomy/s/bash/csh/' /etc/passwd

2.4 删除行

使用删除命令d对文本进行删除操作。

# 删除所有文本sed 'd' data.txt# 删除单行sed '2d' data.txt# 删除行区间[2,3]sed '2,3d' data.txt# 删除行区间[2,endline]sed '2,$d' data.txt# 删除匹配文本aa的行sed '/aa/d' data.txt# 删除两个匹配文本之间的文本 匹配到1和3的行之间的文本全部被删除sed '/1/,/3/d' data.txt

2.5 插入、附加文本

插入命令i在指定行前增加新行

附加命令a在指定行后增加新行

# 追加echo "Line 2" | sed 'a\pipe quote> Line 1'#插入echo "Line 2" | sed 'i\pipe quote> Line 1'

2.6 修改行

c命令用来修改一行数据

# 修改第三行文本sed '3c\pipe quote> change line ' data.txt

2.7 转换命令

命令格式 sed 'y/inchar/outchar'

将inchar中的字符一一对应地转换成outchar的字符

echo "This 1 is a test of 1 try." | sed 'y/123/456/'# 输出This 4 is a test of 4 try.

感谢各位的阅读,以上就是"linux中sed命令的使用方法有哪些"的内容了,经过本文的学习后,相信大家对linux中sed命令的使用方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

命令 数据 文本 输出 文件 一行 使用方法 方法 编辑器 区间 字符 标记 模式 学习 输入 中指 之间 内容 多个 形式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 北京互联网科技公司 电子科技大学互联网 互联网金融和金融科技 互联网科技产品 剑昆互联网络科技有限公司临桂 福州新华互联网科技学校 知乎 福建科技产业互联网发展 科技类公司包括互联网吗 华夏恒生互联网科技013171 世界互联网领先科技成果获奖 上海科技产业互联网平台 广州燕处互联网科技有限公司 好易买互联网科技 互联网领先科技成果宣传视频 黑龙江互联网科技公司 恒生互联网科技趋势 互联网企业和网络科技有限公司 恒生科技互联网指数十大成分股 小牛互联网科技有限公司地址 花魁咖啡 华服互联网科技靠谱吗 山东特亿宝互联网科技有限公司 关于新基建和互联网科技 百单互联网科技有限公司 无线互联网科技 狮子座互联网科技培训 互联网科技宣传片 华中科技大学互联网的牛人 数字科技和互联网金融哪个好
0