.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. .TH SED "1" "2017年2月" "sed 4.4" "用戶命令" .SH 名稱 sed \- 文本篩選和格式轉換的流式編輯器 .SH 摘要 .B sed [\fI選項\fR]... \fI{script-only-if-no-other-script} \fR[\fI輸入文件\fR]... .SH 描述 .ds sd \fIsed\fP .ds Sd \fISed\fP \*(Sd是一個流式編輯器。流式編輯器是用來在輸入流(一個文件或者管道輸入)中 完成基本文本轉換的。當在一些允許腳本編輯的編輯器中(比如\fIed\fP),\*(sd通過將 輸入傳輸爲一個輸入來工作,這樣更高效。但是是\*(sd的功能來過濾管道的文本並 從其他類型的編輯器中特別識別出這些文本。 .HP \fB\-n\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR .IP 不自動打印模式空間的內容 .HP \fB\-e\fR 腳本, \fB\-\-expression\fR=\fI腳本\fR .IP 添加腳本到將要執行的命令 .HP \fB\-f\fR 腳本文件, \fB\-\-file\fR=\fI腳本文件\fR .IP 添加腳本文件的內容到即將執行的命令 .HP \fB\-\-follow\-symlinks\fR .IP 處理已存在文件時跟隨鏈接 .HP \fB\-i[SUFFIX]\fR, \fB\-\-in\-place\fR[=\fISUFFIX\fR] .IP 編輯已存在的文件(如果提供了SUFFIX作爲後綴則做備份) .HP \fB\-l\fR N, \fB\-\-line\-length\fR=\fIN\fR .IP 指定'l'命令需要的自動換行長度 .HP \fB\-\-posix\fR .IP 禁用所有GNU插件。 .HP \fB\-E\fR, \fB\-r\fR, \fB\-\-regexp\-extended\fR .IP 在腳本中使用擴展正則表達式(爲了可移植性,請使用符合POSIX的\fB\-E\fR) .HP \fB\-s\fR, \fB\-\-separate\fR .IP 將多個文件分別看待,而非統一視作同個連續的流。 .HP \fB\-\-sandbox\fR .IP 在沙箱模式下操作。 .HP \fB\-u\fR, \fB\-\-unbuffered\fR .IP 從輸入文件中讀取最少量的數據並更頻繁地刷新輸出緩衝區 .HP \fB\-z\fR, \fB\-\-null\-data\fR .IP 用NUL字符分割行 .TP \fB\-\-help\fR 顯示這個幫助並退出 .TP \fB\-\-version\fR 輸出版本信息並退出 .PP 如果沒有給出\fB\-e\fR,\fB\-\-expression\fR,\fB\-f\fR,或者\fB\-\-file\fR選項, 那麼第一個非選項參數會被當作sed腳本解釋。所有餘下的參數是輸入文件的名稱; 如果沒有指定輸入文件,那麼就會讀取標準輸入。 .PP GNU sed主頁:。使用GNU軟件的通用幫助 :。Bug報告請發送電子郵件至:。 .SH "命令摘要" 這只是爲已經知道\*(sd命令和相關文檔(例如texinfo文檔),需要翻閱命令完整 描述的人準備的\*(sd命令的簡短摘要。 .SS 零地址“命令” .TP .RI :\ label .B b 和 .B t 命令的標籤。 .TP .RI # comment 註釋將會延長到下一個新行 (或者一個 .B -e 腳本片段的結尾。) .TP } 一個{ }塊的閉括號。 .SS 零或一地址命令 .TP = 答應當前行的行號。 .TP a \e .TP .I text 追加 .IR text , text可以通過預先寫入反斜槓來嵌入新行。 .TP i \e .TP .I text 插入 .IR text , text可以通過預先寫入反斜槓來嵌入新行。 .TP q [\fIexit-code\fR] 立即退出\*(sd腳本而不處理其他輸入,除非自動打印沒有禁用使得當前模式 空間將會被打印。[\fIexit-code\fR]是GNU插件(擴展)。 .TP Q [\fIexit-code\fR] 立即退出\*(sd腳本而不處理其他輸入。這是一個GNU插件。 .TP .RI r\ 文件名 從 .IR 文件名 讀取內容並追加到最後。 .TP .RI R\ 文件名 從 .IR 文件名 讀取一行並追加到最後。每次調用這個命令就從文件中讀取一 行。這是一個GNU插件。 .SS 接受範圍地址的命令 .TP { 開始一個命令塊(以一個}結束)。 .TP .RI b\ label 程序跳轉到\fIlabel\fR處;如果\fIlabel\fR被省略,跳轉到腳本尾部。 .TP c \e .TP .I text 用 .IR text 代替選擇的行, .IR text 可以通過預先寫入反斜槓來嵌入新行。 .TP d 刪除模式空間。 開始下一個循環。 .TP D 如果模式空間包含新行,在d命令發佈之後開始一個新的普通循環。否則, 刪除模式空間中的text直到新行,並且在不讀入新行的情況下,用結果的 模式空間開始一個循環。 .TP h H 複製/追加模式空間到保存空間。 .TP g G 複製/追加保存空間到模式空間。 .TP l 用“直觀明確”的格式列出當前行。 .TP .RI l\ width 用“直觀明確”的格式列出當前行,在\fIwidth\fR字符處結束。這是一個GNU插件。 .TP n N 讀取/追加下一行輸入到模式空間。 .TP p 輸出當前的模式空間。 .TP P 輸出直到遇到當前模式空間的第一個嵌入的換行符。 .TP .RI s/ regexp / replacement / 嘗試與模式空間匹配\fIregexp\fR,如果成功,用\fIreplacement\fR代替匹配的部分 。\fIreplacement\fR可能包含特殊字符\fB&\fR來引用模式空間中匹配的部分,而特殊 字符\e1到\e9則引用\fIregexp\fR中對應匹配的子表達式。 .TP .RI t\ label 自上次輸入行讀取之後並且上次執行了t或者T命令之後,如果一個s///被 成功替換,那麼跳轉到\fIlabel\fR處;如果\fIlabel\fR被忽略,跳轉到腳本結尾。 .TP .RI T\ label 自上此輸入行讀取之後並借上次執行了t或者T命令之後,如果一個s///被 成功替換,那麼跳轉到\fIlabel\fR處;如果\fIlabel\fR被忽略,跳轉到腳本結尾。這是 一個GNU插件。 .TP .RI w\ filename 將當前的模式空間寫入到\fIfilename\fR中。 .TP .RI W\ filename 寫入當前模式空間的第一行到\fIfilename\fR中。這是一個GNU插件。 .TP x 交換模式空間和保存空間的內容。 .TP .RI y/ source / dest / 將模式空間中顯示爲\fIsource\fR的字符用\fIdest\fR字符來寫出。 .SH 地址 \*(Sd命令可以沒有指定地址,這樣將會爲所有行執行命令。如果給出了一個地址, 這樣命令就只會爲匹配此地址的行執行;如果給出了兩個地址,這樣命令將會對 從匹配的第一個地址到第二個地址的區域的所有輸入行執行命令。 關於地址範圍有三點:語法爲:\fIaddr1 , addr2\fR(比如,地址要用逗號分開); \fIaddr1\fR匹配的行一定會被接受,即使\fIaddr2\fR選定的是更靠前的行;並且如果\fIaddr2\fR是 一個\fIregexp\fR(正則表達式),它將不會重複測試\fIaddr\fR匹配的行。 .PP 在地址(或地址範圍)之後,在命令之前,可以插入一個\fB!\fR,這個符號定義的命令 只有在地址(地址範圍)\fB不\fR匹配的時候才能執行。 .PP 支持下面的地址類型: .TP .I number 只匹配行號爲\fInumber\fR的行。(除非\fB-s\fR選項在命令行中被指定,number值將 會按照文件數漸增。) .TP .IR first ~ step 匹配每一個第\fIstep\fR行並從\fIfirst\fR開始計數。舉個栗子,``sed -n 1~2p''將 打印出輸入流所有奇數行,而地址2~5將匹配從第2行開始的,以5爲步長的 行。\fIfirst\fR可以是零;這樣,\*(sd按其爲\fIstep\fR來操作。(這是一個插件。) .TP $ 匹配最近的行。 .TP .RI / regexp / 匹配符合正則表達式\fIregexp\fR的行。 .TP .BI \fR\e\fPc regexp c 匹配符合正則表達式\fIregexp\fR的行。 其中\fBc\fR可以是任意字符。 .PP GNU\*(sd同樣支持某些特殊2地址格式: .TP .RI 0, addr2 從“匹配了第一個地址”狀態始,直到發現\fIaddr2\fR。這和\fI1, addr2\fR很相似, 除了當\fIaddr2\fR匹配了輸入的第一行,\fI0, addr2\fR形式將在該範圍的結尾;而 \fI1, addr2\fR形式仍然在該範圍的開始。這種形式只有在\fIaddr2\fR是正則表達式 的情況下才有效。 .TP .IR addr1 ,+ N 將會匹配 .I addr1 和在 .IR addr1 之後的 .I N 行。 .TP .IR addr1 ,~ N 將會匹配 .I addr1 和 .I addr1 之後的輸入行數是 .IR N 倍的下一行。 .SH "正則表達式" POSIX.2 BREs\fI應該\fR是支持的,但是由於性能的原因,這個特性還不完全。其中 \fB\en\fR序列匹配換行符,\fB\ea\fR、\fB\et\fR和其他序列也是類似的。\fI-E\fP選項開關用來選擇是否使用擴展正則 表達式;-E選項已經由GNU sed支持了很多年,現已包含於POSIX中。 .SH BUGS .PP 請將錯誤報告發送至\fBbug-sed@gnu.org\fR。另外,請在郵件正文中儘量包含 ``sed --version''的信息。 .SH 作者 由 Jay Fenlason, Tom Lord, Ken Pizzini, 和 Paolo Bonzini寫成。 GNU sed 主頁: . 使用 GNU 軟件的一般性手冊: . E-mail bug 報告到: . .SH 版權 Copyright \(co 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . .br This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "參見" .BR awk (1), .BR ed (1), .BR grep (1), .BR tr (1), .BR perlre (1), sed.info, 任何和\*(sd相關的書籍, .na \*(sd常見問題(http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/。 .PP .B sed 的完整文檔是作爲Texinfo手冊維護的。如果\fBinfo\fR和\fBsed\fR程序正確的安裝, 可以執行 .IP .B info sed .PP 命令來訪問完整的手冊。 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .PP 翻譯人員:Means Lee .br 翻譯日期:2017-05-15 .br 原始軟件:sed .br .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR