名 称
sed - 文 本 筛 选 和 格 式 转 换 的 流 式 编 辑 器
摘 要
sed [选 项 ]... {script-only-if-no-other-script} [输 入 文 件 ]...
描 述
Sed是 一 个 流 式 编 辑 器 。 流 式 编 辑 器 是 用 来 在 输 入 流 ( 一 个 文 件 或 者 管 道 输 入 ) 中 完 成 基 本 文 本 转 换 的 。 当 在 一 些 允 许 脚 本 编 辑 的 编 辑 器 中 ( 比 如 ed) , sed通 过 将 输 入 传 输 为 一 个 输 入 来 工 作 , 这 样 更 高 效 。 但 是 是 sed的 功 能 来 过 滤 管 道 的 文 本 并 从 其 他 类 型 的 编 辑 器 中 特 别 识 别 出 这 些 文 本 。
-n, --quiet, --silent 不 自 动 打 印 模 式 空 间 的 内 容 | |
-e 脚 本 , --expression=脚 本 添 加 脚 本 到 将 要 执 行 的 命 令 | |
-f 脚 本 文 件 , --file=脚 本 文 件 添 加 脚 本 文 件 的 内 容 到 即 将 执 行 的 命 令 | |
--follow-symlinks 处 理 已 存 在 文 件 时 跟 随 链 接 | |
-i[SUFFIX], --in-place[=SUFFIX] 编 辑 已 存 在 的 文 件 ( 如 果 提 供 了 SUFFIX作 为 后 缀 则 做 备 份 ) | |
-l N, --line-length=N 指 定 ’l’命 令 需 要 的 自 动 换 行 长 度 | |
--posix 禁 用 所 有 GNU插 件 。 | |
-E, -r, --regexp-extended 在 脚 本 中 使 用 扩 展 正 则 表 达 式 ( 为 了 可 移 植 性 , 请 使 用 符 合 POSIX的 -E) | |
-s, --separate 将 多 个 文 件 分 别 看 待 , 而 非 统 一 视 作 同 个 连 续 的 流 。 | |
--sandbox 在 沙 箱 模 式 下 操 作 。 | |
-u, --unbuffered 从 输 入 文 件 中 读 取 最 少 量 的 数 据 并 更 频 繁 地 刷 新 输 出 缓 冲 区 | |
-z, --null-data 用 NUL字 符 分 割 行 |
显 示 这 个 帮 助 并 退 出 |
--version 输 出 版 本 信 息 并 退 出 如 果 没 有 给 出 -e, --expression, -f, 或 者 --file选 项 , 那 么 第 一 个 非 选 项 参 数 会 被 当 作 sed脚 本 解 释 。 所 有 余 下 的 参 数 是 输 入 文 件 的 名 称 ; 如 果 没 有 指 定 输 入 文 件 , 那 么 就 会 读 取 标 准 输 入 。
GNU sed主 页 : <http://www.gnu.org/software/sed/>。; 使 用 GNU软 件 的 通 用 帮 助 : <http://www.gnu.org/gethelp/>。; Bug报 告 请 发 送 电 子 邮 件 至 : <bug-sed [AT] gnu.org>。
命 令 摘 要
这 只 是 为 已 经 知 道 sed命 令 和 相 关 文 档 ( 例 如 texinfo文 档 ) , 需 要 翻 阅 命 令 完 整 描 述 的 人 准 备 的 sed命 令 的 简 短 摘 要 。 零 地 址 “命 令 ” :
label
b 和 t 命 令 的 标 签 。
#comment 注 释 将 会 延 长 到 下 一 个 新 行 (或 者 一 个 -e 脚 本 片 段 的 结 尾 。 )
} 一 个 |
{ }块 的 闭 括 号 。 |
零 或 一 地 址 命 令
= 答 应 当 前 行 的 行 号 。 |
||
a \ |
||
text 追 加 |
text, text可 以 通 过 预 先 写 入 反 斜 杠 来 嵌 入 新 行 。
i \ |
||||
text 插 入 |
text, text可 以 通 过 预 先 写 入 反 斜 杠 来 嵌 入 新 行 。 |
q [exit-code] 立
即 退 出 sed脚 本
而 不 处 理 其 他
输 入 , 除 非 自
动 打 印 没 有 禁
用 使 得 当 前 模
式 空 间 将 会 被
打 印 。 [exit-code]是
GNU插 件 ( 扩 展 )
。
Q [exit-code] 立 即 退 出
sed脚 本 而 不 处
理 其 他 输 入 。
这 是 一 个 GNU插 件
。
r 文 件 名 从
文 件 名 读 取 内
容 并 追 加 到 最
后 。
R 文 件 名 从
文 件 名 读 取 一
行 并 追 加 到 最
后 。 每 次 调 用
这 个 命 令 就 从
文 件 中 读 取 一
行 。 这 是 一 个
GNU插 件 。 接 受 范
围 地 址 的 命
令
{ 开 始 一 个 命 令 块 ( 以 一 个 }结 束 ) 。 |
b label 程 序 跳 转 到 label处 ;如 果 label被 省 略 , 跳 转 到 脚 本 尾 部 。
c \ |
||
text 用 |
text 代 替 选 择 的 行 , text 可 以 通 过 预 先 写 入 反 斜 杠 来 嵌 入 新 行 。 | |
d 删 除 |
模 式 空 间 。 开 始 下 一 个 循 环 。
D 如 果 模 式 空 间 包 含 新 行 , 在 |
d命 令 发 布 之 后 开 始 一 个 新 的 普 通 循 环 。 否 |
则 , 删 除 模 式 空 间 中 的 text直 到 新 行 , 并 且 在 不 读 入 新 行 的 情 况 下 , 用 结 果 的 模 式 空 间 开 始 一 个 循 环 。
h H 复 制 |
/追 加 模 式 空 间 到 保 存 空 间 。 |
||
g G 复 制 |
/追 加 保 存 空 间 到 模 式 空 间 。 |
||
l 用 “直 |
观 明 确 ”的 格 式 列 出 当 前 行 。
l width 用 “直 观 明 确 ”的 格 式 列 出 当 前 行 , 在 width字 符 处 结 束 。 这 是 一 个 GNU插 件 。 |
n N 读 取 |
/追 加 下 一 行 输 入 到 模 式 空 间 。 |
|||
p 输 出 |
当 前 的 模 式 空 间 。
P 输 出 直 到 遇 到 当 前 模 式 空 间 的 第 一 个 嵌 入 的 换 行 符 。 |
s/regexp/replacement/
尝 试 与 模 式 空
间 匹 配 regexp, 如
果 成 功 , 用
replacement代 替 匹 配
的 部 分 。
replacement可 能 包 含
特 殊 字 符 &来
引 用 模 式 空 间
中 匹 配 的 部 分
, 而 特 殊 字 符
\1到 \9则 引 用
regexp中 对 应 匹 配
的 子 表 达 式 。
t label 自 上 次 输
入 行 读 取 之 后
并 且 上 次 执 行
了 t或 者 T命 令 之
后 , 如 果 一 个
s///被 成 功 替 换 ,
那 么 跳 转 到
label处 ;如 果 label被
忽 略 , 跳 转 到
脚 本 结 尾 。
T label 自 上 此 输
入 行 读 取 之 后
并 借 上 次 执 行
了 t或 者 T命 令 之
后 , 如 果 一 个
s///被 成 功 替 换 ,
那 么 跳 转 到
label处 ;如 果 label被
忽 略 , 跳 转 到
脚 本 结 尾 。 这
是 一 个 GNU插 件 。
w filename 将 当 前 的
模 式 空 间 写 入
到 filename中 。
W filename 写 入 当 前
模 式 空 间 的 第
一 行 到 filename中 。
这 是 一 个 GNU插 件
。
x 交 换 模 式 空 间 和 保 存 空 间 的 内 容 。 |
y/source/dest/ 将 模 式 空 间 中 显 示 为 source的 字 符 用 dest字 符 来 写 出 。
地 址
Sed命 令 可 以 没 有 指 定 地 址 , 这 样 将 会 为 所 有 行 执 行 命 令 。 如 果 给 出 了 一 个 地 址 , 这 样 命 令 就 只 会 为 匹 配 此 地 址 的 行 执 行 ; 如 果 给 出 了 两 个 地 址 , 这 样 命 令 将 会 对 从 匹 配 的 第 一 个 地 址 到 第 二 个 地 址 的 区 域 的 所 有 输 入 行 执 行 命 令 。 关 于 地 址 范 围 有 三 点 : 语 法 为 : addr1 , addr2( 比 如 , 地 址 要 用 逗 号 分 开 ) ; addr1匹 配 的 行 一 定 会 被 接 受 , 即 使 addr2选 定 的 是 更 靠 前 的 行 ; 并 且 如 果 addr2是 一 个 regexp( 正 则 表 达 式 ) , 它 将 不 会 重 复 测 试 addr匹 配 的 行 。 在 地 址 ( 或 地 址 范 围 ) 之 后 , 在 命 令 之 前 , 可 以 插 入 一 个 !, 这 个 符 号 定 义 的 命 令 只 有 在 地 址 ( 地 址 范 围 ) 不 匹 配 的 时 候 才 能 执 行 。 支 持 下 面 的 地 址 类 型 :
number 只 匹 配 行 号 为 |
number的 行 。 ( 除 非 -s选 项 在 命 令 行 中 被 指 定 , number值 将 |
会 按 照 文 件 数 渐 增 。 )
first~step 匹 配 每 一 个 第 step行 并 从 first开 始 计 数 。 举 个 栗 子 , ’’sed -n 1~2p’’将 打 印 出 输 入 流 所 有 奇 数 行 , 而 地 址 2~5将 匹 配 从 第 2行 开 始 的 , 以 5为 步 长 的 行 。 first可 以 是 零 ; 这 样 , sed按 其 为 step来 操 作 。 ( 这 是 一 个 插 件 。 )
$ 匹 配 最 近 的 行 。 |
/regexp/ 匹
配 符 合 正 则 表
达 式 regexp的 行 。
\cregexpc 匹 配 符
合 正 则 表 达 式
regexp的 行 。 其 中
c可 以 是 任 意
字 符 。
GNUsed同
样 支 持 某 些 特
殊 2地 址 格 式 :
0,addr2 从 “匹 配 了
第 一 个 地 址 ”状
态 始 , 直 到 发
现 addr2。 这 和 1,
addr2很 相 似 , 除
了 当 addr2匹 配 了
输 入 的 第 一 行
, 0, addr2形 式 将 在
该 范 围 的 结 尾
; 而 1, addr2形 式 仍
然 在 该 范 围 的
开 始 。 这 种 形
式 只 有 在 addr2是
正 则 表 达 式 的
情 况 下 才 有 效
。
addr1,+N 将 会 匹 配
addr1 和 在 addr1 之
后 的 N 行 。
addr1,~N 将 会 匹 配
addr1 和 addr1 之 后
的 输 入 行 数 是
N 倍 的 下 一 行
。
正 则 表 达 式
POSIX.2 BREs应 该 是 支 持 的 , 但 是 由 于 性 能 的 原 因 , 这 个 特 性 还 不 完 全 。 其 中 \n序 列 匹 配 换 行 符 , \a、 \t和 其 他 序 列 也 是 类 似 的 。 -E选 项 开 关 用 来 选 择 是 否 使 用 扩 展 正 则 表 达 式 ; -E选 项 已 经 由 GNU sed支 持 了 很 多 年 , 现 已 包 含 于 POSIX中 。
BUGS
请 将 错 误 报 告 发 送 至 bug-sed [AT] gnu.org。 另 外 , 请 在 邮 件 正 文 中 尽 量 包 含 ’’sed --version’’的 信 息 。
作 者
由 Jay Fenlason, Tom Lord, Ken Pizzini, 和 Paolo Bonzini写 成 。 GNU sed 主 页 : <http://www.gnu.org/software/sed/>. 使 用 GNU 软 件 的 一 般 性 手 册 : <http://www.gnu.org/gethelp/>. E-mail bug 报 告 到 : <bug-sed [AT] gnu.org>.
版 权
Copyright
© 2017 Free Software Foundation, Inc. License GPLv3+:
GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent
permitted by law.
参 见
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, 任 何 和 sed相 关 的 书 籍 , sed常 见 问 题 (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/。;
sed 的 完 整 文 档 是 作 为 Texinfo手 册 维 护 的 。 如 果 info和 sed程 序 正 确 的 安 装 , 可 以 执 行
info sed 命 令 来 访 问 完 整 的 手 册 。
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 翻 译 人 员 : Means Lee 翻 译 日 期 : 2017-05-15 原 始 软 件 : sed 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh