sed
(stream editor)是一个强大的文本处理工具,用于对文本流(如文件、输入/输出流等)进行处理和转换。sed
主要用于自动编辑一个或多个文件;简化对文件的重复操作;编写转换程序等。
基本用法
sed
的一般形式为:
sed [options] 'command' file
其中,command
是sed
要执行的命令(如替换、删除、插入等),而file
是要处理的文件名。如果不指定文件,sed
会从标准输入读取数据。
常见命令
s/pattern/replacement/
:将行中匹配pattern
的部分替换为replacement
。d
:删除匹配行。p
:打印匹配行。i\\text
:在匹配行之前插入文本。a\\text
:在匹配行之后追加文本。
选项
n
:默认情况下,sed
会打印所有处理过的行,使用n
选项后,只有经过特殊处理的行(如被p
命令处理的行)才会被打印。i
:直接修改文件内容,而不是输出到标准输出。e
:允许对输入数据应用多个编辑指令。f
:从文件读取sed
脚本。
示例
-
替换文本:
sed 's/foo/bar/' file.txt
这个命令会将
file.txt
中第一个foo
替换为bar
。 -
删除行:
sed '/foo/d' file.txt
删除所有包含
foo
的行。 -
多个命令:
sed -e 's/foo/bar/' -e '/baz/d' file.txt
首先替换
foo
为bar
,然后删除所有包含baz
的行。 -
直接修改文件内容(慎用,建议先测试命令):
sed -i 's/foo/bar/' file.txt
直接在
file.txt
中将foo
替换为bar
,不打印到标准输出。
sed
命令非常强大,可以处理复杂的文本编辑任务。掌握其使用方法可以极大地提高文本处理的效率。