sed 是 shell 脚本中的“三剑客”之一,它是一个流编辑器,用于对输入流(文件或管道输入)进行基本的文本转换。sed 主要用于自动编辑文本文件,执行基本的文本转换任务。
以下是 sed 的一些主要特点:
流式处理:sed 会读取输入流,并根据提供的规则逐行处理文本。
模式匹配与替换:sed 可以使用正则表达式来匹配文本中的特定模式,并替换匹配到的文本。
删除与插入:除了替换外,sed 还可以删除匹配到的文本,或者在特定位置插入新的文本。
脚本文件:为了复杂文本处理任务,sed 允许将一系列的编辑命令存储在一个脚本文件中。
默认不修改原文件:sed 默认将处理后的文本输出到标准输出,并不改变原文件。如果需要修改原文件,可以使用 -i 选项。
下面是一个简单的 sed 示例,该示例将文件中的“old”替换为“new”:
bash
sed 's/old/new/g' input.txt
在这个例子中:
's/old/new/g' 是一个 sed 命令,表示替换每一行中所有出现的“old”为“new”。
input.txt 是要处理的文件名。
注意,这个命令不会修改 input.txt 文件。要将更改保存回文件,你需要使用 -i 选项:
bash
sed -i 's/old/new/g' input.txt
这只是一个非常基础的示例,sed 的功能远不止于此。它可以处理更复杂的文本转换任务,包括使用正则表达式匹配多个模式,执行复杂的删除和插入操作等。