sed
(全称 stream editor
)是一个在 Linux 和 Unix 系统中常用的文本处理工具,它可以对输入流(文件或管道)进行基本的文本转换。sed
命令非常适合用于对行进行操作,比如搜索、替换、删除等。
sed [选项] '命令' 输入文件
sed
的搜索功能主要通过正则表达式实现。以下是一些基本的搜索操作:
/pattern/
来搜索包含指定模式的行,并使用 p
命令来打印这些行。sed -n '/pattern/p' 文件名
例如,打印包含 "hello" 的所有行:
sed -n '/hello/p' example.txt
=
, 可以打印出匹配行的行号。sed -n '/pattern/{=;p;}' 文件名
sed
的一个非常强大的功能,使用 s/old/new/
语法。sed 's/hello/world/' 文件名
上述命令会将文件中的所有 "hello" 替换为 "world"。若只替换第一个匹配项,则使用 1s
,若替换每行的第一个匹配项,则不加数字,默认只替换每行的第一个匹配。
sed
默认不会修改原文件,如果需要保存修改,可以使用 -i
选项。sed
中非常重要,熟练掌握正则表达式对于高效使用 sed
很关键。假设我们有一个名为 example.txt
的文件,内容如下:
hello world
this is a test
hello again
goodbye world
我们想要搜索并打印所有包含 "hello" 的行:
sed -n '/hello/p' example.txt
输出:
hello world
hello again
如果我们想要将所有的 "world" 替换为 "earth" 并保存修改:
sed -i 's/world/earth/' example.txt
修改后的 example.txt
内容为:
hello earth
this is a test
hello again
goodbye earth
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
云+社区沙龙online第5期[架构演进]
Elastic 实战工作坊
Elastic 实战工作坊
数智话
企业创新在线学堂
Elastic Meetup
领取专属 10元无门槛券
手把手带您无忧上云