sed
是一种流编辑器,主要用于对文本文件进行批量处理。它的基本语法格式如下:
sed [选项] '命令' 输入文件
其中:
[选项]
:可选的命令行选项,例如:-n
:安静模式,仅打印经过命令修改的行,默认情况下,sed
会打印每一行,即使未做改动。-e
:允许在同一行内执行多条sed
命令。-i
:直接编辑原文件(in-place editing),不输出到标准输出而是修改文件内容。-f scriptfile
:从指定的脚本文件中读取命令。
'命令'
:单引号内包含一系列sed
命令,每个命令可能包含地址范围(如行号或正则表达式匹配)、命令字符以及可能的操作参数。例如:s/pattern/replacement/flags
:查找并替换,替换模式空间内的匹配项。d
:删除匹配行。p
:打印当前行(默认情况下每行都会打印,但在-n
安静模式下,用于打印指定行)。a\ 新文本
:在指定行后追加新文本。i\ 插入文本
:在指定行前插入文本。r 文件名
:读取指定文件的内容并将其插入到指定行之后。- 等等。
输入文件
:要处理的文件名,也可以是-
表示从标准输入读取。
例如,一个简单的替换命令:
sed 's/old/new/g' input.txt
这条命令会将 input.txt
文件中每一行出现的 "old" 替换为 "new" 并打印到标准输出。
如果要直接修改原文件,添加 -i
选项:
sed -i 's/old/new/g' input.txt
请注意,sed
命令的强大之处在于它可以结合正则表达式进行复杂文本处理,并且可以按照指定的行号或者模式来选择性地应用命令。