?? sed.txt
字號:
Through caverns measureless by man
Down by a sunless sea.
If the nocopy option is in effect, the command:
s/[.,;?:]/*P&*/gp
produces:
A stately pleasure dome decree*P:*
Where Alph*P,* the sacred river*P,* ran
Down to a sunless sea*P.*
Finally, to illustrate the effect of the g flag, the command:
/X/s/an/AN/p
produces (assuming nocopy mode):
In XANadu did Kubhla Khan
and the command:
/X/s/an/AN/gp
produces:
In XANadu did Kubhla KhAN
3.3. Input-output Functions
(2)p -- print The print function writes the addressed
lines to the standard output file. They are
written at the time the p function is
encountered, regardless of what succeeding editing
commands may do to the lines.
(2)w <filename> -- write on <filename> The write
function writes the addressed lines to the file
named by <filename>. If the file previously
existed, it is overwritten; if not, it is
created. The lines are written exactly as they
exist when the write function is encountered
for each line, regardless of what subsequent
editing commands may do to them. Exactly one
space must separate the w and <filename>. A
maximum of ten different files may be
mentioned in write functions and w flags
after s functions, combined.
(1)r <filename> -- read the contents of a file The read
function reads the contents of <filename>, and
appends them after the line matched by the
address. The file is read and appended
regardless of what subsequent editing commands
do to the line which matched its address. If
r and a functions are executed on the same line,
the text from the a functions and the r functions
is written to the output in the order that
the functions are executed. Exactly one
space must separate the r and <filename>. If a
file mentioned by a r function cannot be opened,
it is considered a null file, not an error, and no
diagnostic is given.
NOTE: Since there is a limit to the number of files that can
be opened simultaneously, care should be taken that no more
than ten files be mentioned in w functions or flags; that
number is reduced by one if any r functions are present.
(Only one read file is open at one time.)
Examples
Assume that the file `note1' has the following contents:
Note: Kubla Khan (more properly Kublai Khan;
1216-1294) was the grandson and most eminent
successor of Genghiz (Chingiz) Khan, and founder
of the Mongol dynasty in China.
Then the following command:
/Kubla/r note1
produces:
In Xanadu did Kubla Khan
Note: Kubla Khan (more properly Kublai Khan;
1216-1294) was the grandson and most eminent
successor of Genghiz (Chingiz) Khan, and founder
of the Mongol dynasty in China.
A stately pleasure dome decree:
Where Alph, the sacred river, ran
Through caverns measureless to man
Down to a sunless sea.
3.4.
Multiple Input-line Functions
Three functions, all spelled with capital letters, deal
specially with pattern spaces containing imbedded newlines;
they are intended principally to provide pattern matches
across lines in the input.
(2)N -- Next line The next input line is appended to
the current line in the pattern space; the two
input lines are separated by an imbedded
newline. Pattern matches may extend across the
imbedded newline(s).
(2)D -- Delete first part of the pattern space Delete
up to and including the first newline character
in the current pattern space. If the pattern
space becomes empty (the only newline was the
terminal newline), read another line from the
input. In any case, begin the list of editing
commands again from its beginning.
(2)P -- Print first part of the pattern space Print up
to and including the first newline in the
pattern space.
The P and D functions are equivalent to their lower-case
counterparts if there are no imbedded newlines in the pattern
space.
3.5. Hold and Get Functions
Four functions save and retrieve part of the input for
possible later use.
(2)h -- hold pattern space The h functions copies the
contents of the pattern space into a hold area
(destroying the previous contents of the hold area).
(2)H -- Hold pattern space The H function appends the
contents of the pattern space to the contents of the
hold area; the former and new contents are
separated by a newline.
(2)g -- get contents of hold area The g function copies the
contents of the hold area into the pattern space
(destroying the previous contents of the pattern
space).
(2)G -- Get contents of hold area The G function appends the
contents of the hold area to the contents of the
pattern space; the former and new contents are
separated by a newline.
(2)x -- exchange The exchange command interchanges the
contents of the pattern space and the hold area.
Example
The commands
1h
1s/ did.*//
1x
G
s/\n/ :/
applied to our standard example, produce:
In Xanadu did Kubla Khan :In Xanadu
A stately pleasure dome decree: :In Xanadu
Where Alph, the sacred river, ran :In Xanadu
Through caverns measureless to man :In Xanadu
Down to a sunless sea. :In Xanadu
3.6. Flow-of-Control Functions
These functions do no editing on the input lines, but
control the application of functions to the lines selected
by the address part.
(2)! -- Don't The Don't command causes the next command
(written on the same line), to be applied to
all and only those input lines not selected by the
adress part.
(2){ -- Grouping The grouping command `{' causes the
next set of commands to be applied (or not
applied) as a block to the input lines selected by
the addresses of the grouping command. The first
of the commands under control of the grouping may
appear on the same line as the `{' or on the next
line.
The group of commands is terminated by a matching `}'
standing on a line by itself.
Groups can be nested.
(0):<label> -- place a label The label function marks a place in
the list of editing commands which may be referred to by b
and t functions. The <label> may be any sequence of
eight or fewer characters; if two different colon
functions have identical labels, a compile time
diagnostic will be generated, and no execution attempted.
(2)b<label> -- branch to label The branch function causes the
sequence of editing commands being applied to the current
input line to be restarted immediately after the place
where a colon function with the same <label> was
encountered. If no colon function with the same label
can be found after all the editing commands have been
compiled, a compile time diagnostic is produced, and
no execution is attempted. A b function with no <label>
is taken to be a branch to the end of the list of editing
commands; whatever should be done with the current input
line is done, and another input line is read; the list
of editing commands is restarted from the beginning on the
new line.
(2)t<label> -- test substitutions The t function tests whether
any successful substitutions have been made on the current
input line; if so, it branches to <label>; if not, it
does nothing. The flag which indicates that a successful
substitution has been executed is reset by:
1) reading a new input line, or
2) executing a t function.
3.7. Miscellaneous Functions
(1)= -- equals The = function writes to the standard
output the line number of the line matched by
its address.
(1)q -- quit The q function causes the current line to
be written to the output (if it should be),
any appended or read text to be written, and
execution to be terminated.
.SH
Reference
[1] Ken Thompson and Dennis M. Ritchie, The UNIX
Programmer's Manual. Bell Laboratories, 1978.
給我留言
版權所有 ChinaUnix.net 頁面生成時間:0.02119
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -