名 稱
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