sed.txt

来自「linux下的命令」· 文本 代码 · 共 1,789 行 · 第 1/4 页

TXT
1,789
字号


          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 + =
减小字号Ctrl + -
显示快捷键?