📄 ch34_07.htm
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 34] 34.7 Delimiting a Regular Expression </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly & Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly & Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:47:14Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="ch34_01.htm"TITLE="34. The sed Stream Editor"><LINKREL="prev"HREF="ch34_06.htm"TITLE="34.6 One Thing at a Time "><LINKREL="next"HREF="ch34_08.htm"TITLE="34.8 Newlines in a sed Replacement "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch34_06.htm"TITLE="34.6 One Thing at a Time "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 34.6 One Thing at a Time "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 34<BR>The sed Stream Editor</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch34_08.htm"TITLE="34.8 Newlines in a sed Replacement "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 34.8 Newlines in a sed Replacement "BORDER="0"></A></TD></TR></TABLE> <HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-7772">34.7 Delimiting a Regular Expression </A></H2><PCLASS="para">Whether in <EMCLASS="emphasis">sed</EM> or <EMCLASS="emphasis">vi</EM>, when using the substitutioncommand, a delimiter is required to separate the search patternfrom the replacement string. The delimiter can be any character exceptblank or a newline (<EMCLASS="emphasis">vi</EM> seems to be more restrictive than<EMCLASS="emphasis">sed</EM>), although the usualpractice is to use the slash (<CODECLASS="literal">/</CODE>) as a delimiter(for example, <CODECLASS="literal">s/</CODE><CODECLASS="replaceable"><I>search</I></CODE><CODECLASS="literal">/</CODE><CODECLASS="replaceable"><I>replacement</I></CODE><CODECLASS="literal">/</CODE>).</P><PCLASS="para">When either the search pattern or the replacement string containsa slash, it is easier to change the delimiter characterrather than escape the slash. Thus, if the pattern was attempting to matchUNIX pathnames, which contain slashes, you couldchoose another character, such as a colon, as thedelimiter:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">s:/usr/mail:/usr2/mail:</PRE></BLOCKQUOTE></P><PCLASS="para">Note that the delimiter appears three times and is required after the <EMCLASS="emphasis">replacement</EM>.Regardless of which delimiter you use, if it does appear in theregular expression, use a backslash (<CODECLASS="literal">\</CODE>) to escape it.</P><PCLASS="para">If you don't know what characters the search pattern might have (in a shellprogram that handles any kind of input, for instance), the safest choicefor the delimiter can be a control character.Article<ACLASS="xref"HREF="ch45_35.htm"TITLE="Using a Control Character in a Script ">45.35</A>shows how to make and use a control character as the delimiter in ashell script - without having to store the control character in the file.</P><PCLASS="para">You can use any delimiter for a pattern address (not just a slash).Put a backslash (<CODECLASS="literal">\</CODE>) before the first delimiter.For example, to delete all lines containing <EMCLASS="emphasis">/usr/mail</EM>, usinga colon (<CODECLASS="literal">:</CODE>) as the delimiter: </P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">\:/usr/mail:d</PRE></BLOCKQUOTE></P><ACLASS="indexterm"NAME="AUTOID-38569"></A><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">DD</SPAN>, <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch34_06.htm"TITLE="34.6 One Thing at a Time "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 34.6 One Thing at a Time "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch34_08.htm"TITLE="34.8 Newlines in a sed Replacement "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 34.8 Newlines in a sed Replacement "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">34.6 One Thing at a Time </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">34.8 Newlines in a sed Replacement </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed & awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -