|
| 1 | +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. |
| 2 | +.TH SED "1" "2017年2月" "sed 4.4" "用户命令" |
| 3 | +.SH 名称 |
| 4 | +sed \- 文本筛选和格式转换的流式编辑器 |
| 5 | +.SH 摘要 |
| 6 | +.B sed |
| 7 | +[\fI选项\fR]... \fI{script-only-if-no-other-script} \fR[\fI输入文件\fR]... |
| 8 | +.SH 描述 |
| 9 | +.ds sd \fIsed\fP |
| 10 | +.ds Sd \fISed\fP |
| 11 | +\*(Sd是一个流式编辑器。流式编辑器是用来在输入流(一个文件或者管道输入)中 |
| 12 | +完成基本文本转换的。当在一些允许脚本编辑的编辑器中(比如\fIed\fP),\*(sd通过将 |
| 13 | +输入传输为一个输入来工作,这样更高效。但是是\*(sd的功能来过滤管道的文本并 |
| 14 | +从其他类型的编辑器中特别识别出这些文本。 |
| 15 | +.HP |
| 16 | +\fB\-n\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR |
| 17 | +.IP |
| 18 | +不自动打印模式空间的内容 |
| 19 | +.HP |
| 20 | +\fB\-e\fR 脚本, \fB\-\-expression\fR=\fI脚本\fR |
| 21 | +.IP |
| 22 | +添加脚本到将要执行的命令 |
| 23 | +.HP |
| 24 | +\fB\-f\fR 脚本文件, \fB\-\-file\fR=\fI脚本文件\fR |
| 25 | +.IP |
| 26 | +添加脚本文件的内容到即将执行的命令 |
| 27 | +.HP |
| 28 | +\fB\-\-follow\-symlinks\fR |
| 29 | +.IP |
| 30 | +处理已存在文件时跟随链接 |
| 31 | +.HP |
| 32 | +\fB\-i[SUFFIX]\fR, \fB\-\-in\-place\fR[=\fISUFFIX\fR] |
| 33 | +.IP |
| 34 | +编辑已存在的文件(如果提供了SUFFIX作为后缀则做备份) |
| 35 | +.HP |
| 36 | +\fB\-l\fR N, \fB\-\-line\-length\fR=\fIN\fR |
| 37 | +.IP |
| 38 | +指定'l'命令需要的自动换行长度 |
| 39 | +.HP |
| 40 | +\fB\-\-posix\fR |
| 41 | +.IP |
| 42 | +禁用所有GNU插件。 |
| 43 | +.HP |
| 44 | +\fB\-E\fR, \fB\-r\fR, \fB\-\-regexp\-extended\fR |
| 45 | +.IP |
| 46 | +在脚本中使用扩展正则表达式(为了可移植性,请使用符合POSIX的\fB\-E\fR) |
| 47 | +.HP |
| 48 | +\fB\-s\fR, \fB\-\-separate\fR |
| 49 | +.IP |
| 50 | +将多个文件分别看待,而非统一视作同个连续的流。 |
| 51 | +.HP |
| 52 | +\fB\-\-sandbox\fR |
| 53 | +.IP |
| 54 | +在沙箱模式下操作。 |
| 55 | +.HP |
| 56 | +\fB\-u\fR, \fB\-\-unbuffered\fR |
| 57 | +.IP |
| 58 | +从输入文件中读取最少量的数据并更频繁地刷新输出缓冲区 |
| 59 | +.HP |
| 60 | +\fB\-z\fR, \fB\-\-null\-data\fR |
| 61 | +.IP |
| 62 | +用NUL字符分割行 |
| 63 | +.TP |
| 64 | +\fB\-\-help\fR |
| 65 | +显示这个帮助并退出 |
| 66 | +.TP |
| 67 | +\fB\-\-version\fR |
| 68 | +输出版本信息并退出 |
| 69 | +.PP |
| 70 | +如果没有给出\fB\-e\fR,\fB\-\-expression\fR,\fB\-f\fR,或者\fB\-\-file\fR选项, |
| 71 | +那么第一个非选项参数会被当作sed脚本解释。所有余下的参数是输入文件的名称; |
| 72 | +如果没有指定输入文件,那么就会读取标准输入。 |
| 73 | +.PP |
| 74 | +GNU sed主页:<http://www.gnu.org/software/sed/>。使用GNU软件的通用帮助 |
| 75 | +:<http://www.gnu.org/gethelp/>。Bug报告请发送电子邮件至:< [email protected]>。 |
| 76 | +.SH "命令摘要" |
| 77 | +这只是为已经知道\*(sd命令和相关文档(例如texinfo文档),需要翻阅命令完整 |
| 78 | +描述的人准备的\*(sd命令的简短摘要。 |
| 79 | +.SS |
| 80 | +零地址“命令” |
| 81 | +.TP |
| 82 | +.RI :\ label |
| 83 | +.B b |
| 84 | +和 |
| 85 | +.B t |
| 86 | +命令的标签。 |
| 87 | +.TP |
| 88 | +.RI # comment |
| 89 | +注释将会延长到下一个新行 (或者一个 |
| 90 | +.B -e |
| 91 | +脚本片段的结尾。) |
| 92 | +.TP |
| 93 | +} |
| 94 | +一个{ }块的闭括号。 |
| 95 | +.SS |
| 96 | +零或一地址命令 |
| 97 | +.TP |
| 98 | += |
| 99 | +答应当前行的行号。 |
| 100 | +.TP |
| 101 | +a \e |
| 102 | +.TP |
| 103 | +.I text |
| 104 | +追加 |
| 105 | +.IR text , |
| 106 | +text可以通过预先写入反斜杠来嵌入新行。 |
| 107 | +.TP |
| 108 | +i \e |
| 109 | +.TP |
| 110 | +.I text |
| 111 | +插入 |
| 112 | +.IR text , |
| 113 | +text可以通过预先写入反斜杠来嵌入新行。 |
| 114 | +.TP |
| 115 | +q [\fIexit-code\fR] |
| 116 | +立即退出\*(sd脚本而不处理其他输入,除非自动打印没有禁用使得当前模式 |
| 117 | +空间将会被打印。[\fIexit-code\fR]是GNU插件(扩展)。 |
| 118 | +.TP |
| 119 | +Q [\fIexit-code\fR] |
| 120 | +立即退出\*(sd脚本而不处理其他输入。这是一个GNU插件。 |
| 121 | +.TP |
| 122 | +.RI r\ 文件名 |
| 123 | +从 |
| 124 | +.IR 文件名 |
| 125 | +读取内容并追加到最后。 |
| 126 | +.TP |
| 127 | +.RI R\ 文件名 |
| 128 | +从 |
| 129 | +.IR 文件名 |
| 130 | +读取一行并追加到最后。每次调用这个命令就从文件中读取一 |
| 131 | +行。这是一个GNU插件。 |
| 132 | +.SS |
| 133 | +接受范围地址的命令 |
| 134 | +.TP |
| 135 | +{ |
| 136 | +开始一个命令块(以一个}结束)。 |
| 137 | +.TP |
| 138 | +.RI b\ label |
| 139 | +程序跳转到\fIlabel\fR处;如果\fIlabel\fR被省略,跳转到脚本尾部。 |
| 140 | +.TP |
| 141 | +c \e |
| 142 | +.TP |
| 143 | +.I text |
| 144 | +用 |
| 145 | +.IR text |
| 146 | +代替选择的行, |
| 147 | +.IR text |
| 148 | +可以通过预先写入反斜杠来嵌入新行。 |
| 149 | +.TP |
| 150 | +d |
| 151 | +删除模式空间。 |
| 152 | +开始下一个循环。 |
| 153 | +.TP |
| 154 | +D |
| 155 | +如果模式空间包含新行,在d命令发布之后开始一个新的普通循环。否则, |
| 156 | +删除模式空间中的text直到新行,并且在不读入新行的情况下,用结果的 |
| 157 | +模式空间开始一个循环。 |
| 158 | +.TP |
| 159 | +h H |
| 160 | +复制/追加模式空间到保存空间。 |
| 161 | +.TP |
| 162 | +g G |
| 163 | +复制/追加保存空间到模式空间。 |
| 164 | +.TP |
| 165 | +l |
| 166 | +用“直观明确”的格式列出当前行。 |
| 167 | +.TP |
| 168 | +.RI l\ width |
| 169 | +用“直观明确”的格式列出当前行,在\fIwidth\fR字符处结束。这是一个GNU插件。 |
| 170 | +.TP |
| 171 | +n N |
| 172 | +读取/追加下一行输入到模式空间。 |
| 173 | +.TP |
| 174 | +p |
| 175 | +输出当前的模式空间。 |
| 176 | +.TP |
| 177 | +P |
| 178 | +输出直到遇到当前模式空间的第一个嵌入的换行符。 |
| 179 | +.TP |
| 180 | +.RI s/ regexp / replacement / |
| 181 | +尝试与模式空间匹配\fIregexp\fR,如果成功,用\fIreplacement\fR代替匹配的部分 |
| 182 | +。\fIreplacement\fR可能包含特殊字符\fB&\fR来引用模式空间中匹配的部分,而特殊 |
| 183 | +字符\e1到\e9则引用\fIregexp\fR中对应匹配的子表达式。 |
| 184 | +.TP |
| 185 | +.RI t\ label |
| 186 | +自上次输入行读取之后并且上次执行了t或者T命令之后,如果一个s///被 |
| 187 | +成功替换,那么跳转到\fIlabel\fR处;如果\fIlabel\fR被忽略,跳转到脚本结尾。 |
| 188 | +.TP |
| 189 | +.RI T\ label |
| 190 | +自上此输入行读取之后并借上次执行了t或者T命令之后,如果一个s///被 |
| 191 | +成功替换,那么跳转到\fIlabel\fR处;如果\fIlabel\fR被忽略,跳转到脚本结尾。这是 |
| 192 | +一个GNU插件。 |
| 193 | +.TP |
| 194 | +.RI w\ filename |
| 195 | +将当前的模式空间写入到\fIfilename\fR中。 |
| 196 | +.TP |
| 197 | +.RI W\ filename |
| 198 | +写入当前模式空间的第一行到\fIfilename\fR中。这是一个GNU插件。 |
| 199 | +.TP |
| 200 | +x |
| 201 | +交换模式空间和保存空间的内容。 |
| 202 | +.TP |
| 203 | +.RI y/ source / dest / |
| 204 | +将模式空间中显示为\fIsource\fR的字符用\fIdest\fR字符来写出。 |
| 205 | +.SH |
| 206 | +地址 |
| 207 | +\*(Sd命令可以没有指定地址,这样将会为所有行执行命令。如果给出了一个地址, |
| 208 | +这样命令就只会为匹配此地址的行执行;如果给出了两个地址,这样命令将会对 |
| 209 | +从匹配的第一个地址到第二个地址的区域的所有输入行执行命令。 |
| 210 | +关于地址范围有三点:语法为:\fIaddr1 , addr2\fR(比如,地址要用逗号分开); |
| 211 | +\fIaddr1\fR匹配的行一定会被接受,即使\fIaddr2\fR选定的是更靠前的行;并且如果\fIaddr2\fR是 |
| 212 | +一个\fIregexp\fR(正则表达式),它将不会重复测试\fIaddr\fR匹配的行。 |
| 213 | +.PP |
| 214 | +在地址(或地址范围)之后,在命令之前,可以插入一个\fB!\fR,这个符号定义的命令 |
| 215 | +只有在地址(地址范围)\fB不\fR匹配的时候才能执行。 |
| 216 | +.PP |
| 217 | +支持下面的地址类型: |
| 218 | +.TP |
| 219 | +.I number |
| 220 | +只匹配行号为\fInumber\fR的行。(除非\fB-s\fR选项在命令行中被指定,number值将 |
| 221 | +会按照文件数渐增。) |
| 222 | +.TP |
| 223 | +.IR first ~ step |
| 224 | +匹配每一个第\fIstep\fR行并从\fIfirst\fR开始计数。举个栗子,``sed -n 1~2p''将 |
| 225 | +打印出输入流所有奇数行,而地址2~5将匹配从第2行开始的,以5为步长的 |
| 226 | +行。\fIfirst\fR可以是零;这样,\*(sd按其为\fIstep\fR来操作。(这是一个插件。) |
| 227 | +.TP |
| 228 | +$ |
| 229 | +匹配最近的行。 |
| 230 | +.TP |
| 231 | +.RI / regexp / |
| 232 | +匹配符合正则表达式\fIregexp\fR的行。 |
| 233 | +.TP |
| 234 | +.BI \fR\e\fPc regexp c |
| 235 | +匹配符合正则表达式\fIregexp\fR的行。 |
| 236 | +其中\fBc\fR可以是任意字符。 |
| 237 | +.PP |
| 238 | +GNU\*(sd同样支持某些特殊2地址格式: |
| 239 | +.TP |
| 240 | +.RI 0, addr2 |
| 241 | +从“匹配了第一个地址”状态始,直到发现\fIaddr2\fR。这和\fI1, addr2\fR很相似, |
| 242 | +除了当\fIaddr2\fR匹配了输入的第一行,\fI0, addr2\fR形式将在该范围的结尾;而 |
| 243 | +\fI1, addr2\fR形式仍然在该范围的开始。这种形式只有在\fIaddr2\fR是正则表达式 |
| 244 | +的情况下才有效。 |
| 245 | +.TP |
| 246 | +.IR addr1 ,+ N |
| 247 | +将会匹配 |
| 248 | +.I addr1 |
| 249 | +和在 |
| 250 | +.IR addr1 |
| 251 | +之后的 |
| 252 | +.I N |
| 253 | +行。 |
| 254 | +.TP |
| 255 | +.IR addr1 ,~ N |
| 256 | +将会匹配 |
| 257 | +.I addr1 |
| 258 | +和 |
| 259 | +.I addr1 |
| 260 | +之后的输入行数是 |
| 261 | +.IR N |
| 262 | +倍的下一行。 |
| 263 | +.SH "正则表达式" |
| 264 | +POSIX.2 BREs\fI应该\fR是支持的,但是由于性能的原因,这个特性还不完全。其中 |
| 265 | +\fB\en\fR序列匹配换行符,\fB\ea\fR、\fB\et\fR和其他序列也是类似的。\fI-E\fP选项开关用来选择是否使用扩展正则 |
| 266 | +表达式;-E选项已经由GNU sed支持了很多年,现已包含于POSIX中。 |
| 267 | +.SH BUGS |
| 268 | +.PP |
| 269 | +请将错误报告发送至 \fB[email protected]\fR。另外,请在邮件正文中尽量包含 |
| 270 | +``sed --version''的信息。 |
| 271 | +.SH 作者 |
| 272 | +由 Jay Fenlason, Tom Lord, Ken Pizzini, |
| 273 | +和 Paolo Bonzini写成。 |
| 274 | +GNU sed 主页: <http://www.gnu.org/software/sed/>. |
| 275 | +使用 GNU 软件的一般性手册: <http://www.gnu.org/gethelp/>. |
| 276 | +E-mail bug 报告到: < [email protected]>. |
| 277 | +.SH 版权 |
| 278 | +Copyright \(co 2017 Free Software Foundation, Inc. |
| 279 | +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. |
| 280 | +.br |
| 281 | +This is free software: you are free to change and redistribute it. |
| 282 | +There is NO WARRANTY, to the extent permitted by law. |
| 283 | +.SH "参见" |
| 284 | +.BR awk (1), |
| 285 | +.BR ed (1), |
| 286 | +.BR grep (1), |
| 287 | +.BR tr (1), |
| 288 | +.BR perlre (1), |
| 289 | +sed.info, |
| 290 | +任何和\*(sd相关的书籍, |
| 291 | +.na |
| 292 | +\*(sd常见问题(http://sed.sf.net/grabbag/tutorials/sedfaq.txt), |
| 293 | +http://sed.sf.net/grabbag/。 |
| 294 | +.PP |
| 295 | +.B sed |
| 296 | +的完整文档是作为Texinfo手册维护的。如果\fBinfo\fR和\fBsed\fR程序正确的安装, |
| 297 | +可以执行 |
| 298 | +.IP |
| 299 | +.B info sed |
| 300 | +.PP |
| 301 | +命令来访问完整的手册。 |
| 302 | +.\" manpages-zh translator: Means Lee |
| 303 | +.\" manpages-zh date: 2017-05-15 |
| 304 | +.\" manpages-zh orig-package: sed |
0 commit comments