Sed #
sed
是一个流编辑器。它可以在输入流(文件或来自管道的输入)上执行基本的文本转换。
常用 Sed 命令 #
替换 (s): 将模式的出现替换为另一个字符串。
sed 's/old_string/new_string/' filename # 替换每行的首次出现 sed 's/old_string/new_string/g' filename # 替换每行的所有出现 sed 's/old_string/new_string/gi' filename # 不区分大小写地替换所有出现 sed -i 's/old_string/new_string/g' filename # 就地替换
删除 (d): 删除匹配模式的行。
sed '/pattern/d' filename # 删除包含 'pattern' 的行 sed '1d' filename # 删除第一行 sed '1,5d' filename # 删除从 1 到 5 的行 sed '$d' filename # 删除最后一行
打印 (p): 打印匹配模式的行。
sed -n '/pattern/p' filename # 仅打印包含 'pattern' 的行 sed -n '1,5p' filename # 打印从 1 到 5 的行
-n
选项抑制默认输出,因此只显示明确打印的行。插入 (i): 在行前插入文本。
sed '1i\ 这是在开头插入的新行。' filename
追加 (a): 在行后追加文本。
sed '$a\ 这是在末尾追加的新行。' filename
转换 (y): 转换字符。
sed 'y/abc/ABC/' filename # 将 'a' 转换为 'A','b' 转换为 'B','c' 转换为 'C'
复杂的 Sed 命令 #
- 删除颜色。
sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g" filename