sed
(stream editor)是一种流编辑器,用于对文本文件进行基于行的编辑操作
sed 基本语法
sed
命令的基本语法如下:
sed [options] 'script' file
options
:可选的命令行选项,例如-n
(禁止自动打印模式空间)、-e
(允许多个脚本)等。script
:sed
脚本,包含一系列的编辑命令。file
:输入文件。
sed 脚本结构
sed
脚本由一系列的编辑命令组成,每个命令通常包含一个地址范围和一个操作。地址范围可以是行号、正则表达式匹配的行或其他条件。如果没有指定地址范围,则默认作用于整篇文档。
丰富案例
案例 1:打印特定行
sed -n '5p' file.txt
这个命令将打印 file.txt
文件的第 5 行。-n
选项禁止自动打印模式空间,5p
是一个编辑命令,表示打印第 5 行。
案例 2:删除特定行
sed '3d' file.txt
这个命令将删除 file.txt
文件的第 3 行。3d
是一个编辑命令,表示删除第 3 行。
案例 3:替换文本
sed 's/apple/orange/g' file.txt
这个命令将在 file.txt
文件中将所有的 “apple” 替换为 “orange”。s/apple/orange/g
是一个编辑命令,表示全局替换 “apple” 为 “orange”。
案例 4:插入文本
sed '3i\New line' file.txt
这个命令将在 file.txt
文件的第 3 行之前插入 “New line”。3i\New line
是一个编辑命令,表示在第 3 行之前插入文本。
案例 5:修改特定行的内容
sed '3s/^.*$/This is a new line/' file.txt
这个命令将把 file.txt
文件的第 3 行替换为 “This is a new line”。3s/^.*$/This is a new line/
是一个编辑命令,表示替换第 3 行的内容。
案例 6:基于正则表达式的行选择和操作
sed -n '/^root/p' /etc/passwd
这个命令将打印 /etc/passwd
文件中以 “root” 开头的行。/^root/p
是一个编辑命令,表示打印匹配正则表达式 “^root” 的行。
总结
sed
是一种非常强大的文本处理工具,可以用于对文本文件进行基于行的编辑操作。通过编写简单的脚本,你可以轻松地实现复杂的文本处理任务。以上案例只是 sed
功能的一部分,你可以根据自己的需求编写更复杂的脚本来实现更高级的功能。