Skip to content

Commit 3497b57

Browse files
committed
Add translation for sed(1) by Means Lee
1 parent e595fdc commit 3497b57

File tree

4 files changed

+310
-1
lines changed

4 files changed

+310
-1
lines changed

AUTHORS

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
Means Lee <[email protected]>
12
金步国 <[email protected]>
23
Boyuan Yang <[email protected]>
34
LI Daobing <[email protected]>

ChangeLog

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2017-05-15 Means Lee <[email protected]>
2+
3+
* Add manual translation for sed(1).
4+
15
2017-04-13 Boyuan Yang <[email protected]>
26

37
* Add a project logo into DOCS directory.

src/man1/manpages

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ MANPAGES = [.1 ab.1 ac.1 access.1 ali.1 alias.1 apm.1 ar.1 \
3131
popd.1 postgres.1 postmaster.1 printf.1 printenv.1 psfaddtable.1 \
3232
psfgettable.1 psfstriptable.1 psql.1 pushd.1 pwd.1 quota.1 \
3333
read.1 readlink.1 readonly.1 realpath.1 return.1 rgview.1 rgvim.1 rlogin.1 rm.1 \
34-
rmdir.1 rvi.1 rview.1 rvim.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 \
34+
rmdir.1 rvi.1 rview.1 rvim.1 sed.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 \
3535
scp.1 set.1 setleds.1 setmetamode.1 \
3636
shift.1 shopt.1 showfont.1 showkey.1 size.1 sleep.1 \
3737
smbclient.1 smbcontrol.1 smbrun.1 smbsh.1 smbstatus.1 smbtar.1 \

src/man1/sed.1

+304
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
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

Comments
 (0)