📅  最后修改于: 2023-12-03 15:02:43.624000             🧑  作者: Mango
SED(Stream Editor)是一个非交互式的流式文本编辑器,使用类似于正则表达式的语法进行文本处理。SED 命令可用于编辑、过滤、替换等各种文本操作。
SED 命令一般的格式为:
sed options script file
其中,options 指定了 SED 命令的选项,script 指定要执行的 SED 脚本,file 指定要处理的文件路径或标准输入流。
-n
:关闭默认输出,只输出经过处理的内容;-i
:直接修改文件内容,不打印到标准输出流;-e
:指定要执行的 SED 脚本。SED 脚本由一系列命令以及可选的地址构成。命令可以是删除、替换、输出等各种操作,地址指定要对哪些行进行处理。
SED 脚本格式如下:
[address1[,address2]]<command1>
[address1[,address2]]<command2>
...
其中,address1 和 address2 分别指定了要处理的行的起始和结束位置,可以是正整数、正则表达式、字符范围等等,如果不指定地址则默认对所有行进行处理。
command1、command2 等为要执行的命令,可以是 s
(替换)、d
(删除)、p
(输出)等,也可以是带参数的命令。
下面介绍两个常用的 SED 命令用法。
假设要将文件 example.txt
中所有的 foo
替换为 bar
,可以使用以下命令:
sed 's/foo/bar/g' example.txt
其中,s
表示替换命令,g
表示全局替换,即每一行都进行替换。
假设要从文件 example.txt
中提取所有包含 foo
字符串的行,可以使用以下命令:
sed -n '/foo/p' example.txt
其中,-n
选项指定关闭默认输出,/foo/p
表示在匹配到包含 foo
的行时输出该行的内容。