在 Linux 中有一个叫 sed 的工具,全称是 stream editor,流编辑器,因其强大的功能和便利的用法,是许多开发者和系统管理员的必备工具之一。这篇文章将重点介绍 sed 的基本使用及其优势。
sed 是命令行驱动的处理程序,语法格式主要为“sed [选项] ‘命令’ 文件名”。这里,选项可以为空,命令是 sed 执行的操作,文件名是要处理的文件。以一个简单的命令为例:“sed ‘s/test/TEST/g’ filename”,此命令的意思是将 filename 文件中所有的 test 替换为 TEST。
一、sed 的优势
sed 的亮点在于它的功能强大且工作效率高。首先,它可以无缝整合进 shell 脚本,在脚本中的操作可以完全用 sed 指令替代,无需额外输入。「 sed -i ‘…’ 」能直接更改文件而无须输出到新文件,省了相应的操作步骤。再者,sed 支持正则表达式,使得复杂的文本处理变得简单易行。最后,sed 的处理速度较快,对大文件的处理能力强,这优于许多其他的文本处理工具。
二、shell 脚本中的 sed
sed 可以轻易地和 shell 脚本整合。可以直接在脚本中调用sed命令完成复杂的文本处理任务。这也是为什么许多 shell 脚本会包含 sed 命令。以下是一个简单的示例:“#!/bin/sh sed ‘s/test/NEW_TEST/g’ filename”。
三、基本指令
3.1 基本命令结构
sed [选项] '命令模式' [输入文件]
-i
选项:直接修改原文件内容(不使用此选项时,输出到标准输出而不改变原文件)-e
选项:执行多条命令(可以写多条s
命令等)-f
选项:从指定的脚本文件读取命令-n
选项:安静模式,只打印经过处理的行,默认情况下所有行都会被打印
3.2 命令列表及说明
3.2.1 搜索与替换
- s/search/replace/:替换命令,将匹配到的
search<