⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch33_03.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 33] 33.3 Line Addressing </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly &amp; Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly &amp; Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:46:47Z"><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="ch33_01.htm"TITLE="33. Batch Editing"><LINKREL="prev"HREF="ch33_02.htm"TITLE="33.2 Writing Editing Scripts "><LINKREL="next"HREF="ch33_04.htm"TITLE="33.4 Useful ex Commands "></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="ch33_02.htm"TITLE="33.2 Writing Editing Scripts "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 33.2 Writing Editing Scripts "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 33<BR>Batch Editing</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch33_04.htm"TITLE="33.4 Useful ex Commands "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 33.4 Useful ex Commands "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-7995">33.3 Line Addressing </A></H2><PCLASS="para">The key to making line editors work for you is understanding how toselect (or &quot;address&quot;) the lines that will be affected by the commands in yourscript.<ACLASS="indexterm"NAME="AUTOID-36329"></A><ACLASS="indexterm"NAME="UPT-ART-7995-IX-EX-EDITOR-SCRIPTING"></A><ACLASS="indexterm"NAME="UPT-ART-7995-IX-BATCH-EDITING-EX-SCRIPTING"></A></P><PCLASS="para">In <EMCLASS="emphasis">ed</EM> and <EMCLASS="emphasis">ex</EM>, a command affects only the &quot;current&quot; line&nbsp;- thefirst line of the file to begin with, and later the site of the lastedit or movement command&nbsp;- unless you precede the command with an address to indicate some other line or lines. In <EMCLASS="emphasis">sed</EM>, mostcommands apply to every line unless you give an address.</P><PCLASS="para">Most line editors address lines in three ways:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para">with line numbers</P></LI><LICLASS="listitem"><PCLASS="para">with regular expression patterns</P></LI><LICLASS="listitem"><PCLASS="para">with special symbols</P></LI></UL><PCLASS="para">It's possible to address single lines or a range of lines.</P><PCLASS="para">describes the addresses you can use with <EMCLASS="emphasis">ex</EM>.</P><TABLECLASS="table"><CAPTIONCLASS="table"><ACLASS="title"NAME="UPT-ART-7995-TAB-0">Table 33.1: Line Addressing in the ex Editor</A></CAPTION><TBODYCLASS="tbody"><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">1,$</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">All lines in the file.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">%</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">All lines; same as <CODECLASS="literal">1,$</CODE>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>x</I></CODE>,<CODECLASS="replaceable"><I>y</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Lines <EMCLASS="emphasis">x</EM> through <EMCLASS="emphasis">y</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>x</I></CODE>;<CODECLASS="replaceable"><I>y</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Lines <EMCLASS="emphasis">x</EM> through <EMCLASS="emphasis">y</EM>, with current line reset to <EMCLASS="emphasis">x</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">1</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Top of file.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">0</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">&quot;Before the top&quot; of file.  Used to add text above top line: <CODECLASS="literal">0r</CODE>, <CODECLASS="replaceable"><I>x</I></CODE><CODECLASS="literal">m0</CODE>, etc.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">.</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Current line.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Absolute line number <EMCLASS="emphasis">n</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">$</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Last line.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>x</I></CODE>-<CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><EMCLASS="emphasis">n</EM> lines before <EMCLASS="emphasis">x</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="replaceable"><I>x</I></CODE>+<CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><EMCLASS="emphasis">n</EM> lines after <EMCLASS="emphasis">x</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">-<CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><EMCLASS="emphasis">n</EM> lines previous.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">-</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Previous line.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">+<CODECLASS="replaceable"><I>n</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><EMCLASS="emphasis">n</EM> lines ahead.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">+</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Next line.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1"><CODECLASS="literal">'</CODE><CODECLASS="replaceable"><I>x</I></CODE></TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Line marked with <EMCLASS="emphasis">x</EM>. (To mark a line, use <CODECLASS="literal">k</CODE><CODECLASS="replaceable"><I>x</I></CODE>.)</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">''</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Previous mark.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">/<CODECLASS="replaceable"><I>pattern</I></CODE>/</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Next line matching <EMCLASS="emphasis">pattern</EM>.</TD></TR><TRCLASS="row"VALIGN="TOP"><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">?<CODECLASS="replaceable"><I>pattern</I></CODE>?</TD><TDCLASS="entry"ROWSPAN="1"COLSPAN="1">Previous line matching <EMCLASS="emphasis">pattern</EM>.</TD></TR></TBODY></TABLE><PCLASS="para">If the address specifies a range of lines, the format is:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen"><CODECLASS="replaceable"><I>x</I></CODE><CODECLASS="literal">,</CODE><CODECLASS="replaceable"><I>y</I></CODE></PRE></BLOCKQUOTE></P><PCLASS="para">where <EMCLASS="emphasis">x</EM> and <EMCLASS="emphasis">y</EM> are the first and last addressed lines.<EMCLASS="emphasis">x</EM> must precede <EMCLASS="emphasis">y</EM> in the file.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">TOR</SPAN>, <SPANCLASS="authorinitials">DG,&nbsp;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="ch33_02.htm"TITLE="33.2 Writing Editing Scripts "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 33.2 Writing Editing Scripts "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="ch33_04.htm"TITLE="33.4 Useful ex Commands "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 33.4 Useful ex Commands "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">33.2 Writing Editing Scripts </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">33.4 Useful ex Commands </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 &amp; 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 + -