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

📄 ch27_01.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 27] Searching Through Files</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:44:16Z"><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="part04.htm"TITLE="IV. Looking Inside Files "><LINKREL="prev"HREF="ch26_10.htm"TITLE="26.10 Pattern Matching Quick Reference with Examples "><LINKREL="next"HREF="ch27_02.htm"TITLE="27.2 Searching for Text with grep "></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="ch26_10.htm"TITLE="26.10 Pattern Matching Quick Reference with Examples "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 26.10 Pattern Matching Quick Reference with Examples "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 27</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch27_02.htm"TITLE="27.2 Searching for Text with grep "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 27.2 Searching for Text with grep "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="CHAPTER"><H1CLASS="chapter"><ACLASS="title"NAME="UPT-CHP-27">27. Searching Through Files</A></H1><DIVCLASS="htmltoc"><P><B>Contents:</B><BR><ACLASS="sect1"HREF="#UPT-ART-7420"TITLE="27.1 Different Versions of grep ">Different Versions of grep </A><BR><ACLASS="sect1"HREF="ch27_02.htm"TITLE="27.2 Searching for Text with grep ">Searching for Text with grep </A><BR><ACLASS="sect1"HREF="ch27_03.htm"TITLE="27.3 Finding Text That Doesn't Match ">Finding Text That Doesn't Match </A><BR><ACLASS="sect1"HREF="ch27_04.htm"TITLE="27.4 Finding a Pattern Only When It's a Word ">Finding a Pattern Only When It's a Word </A><BR><ACLASS="sect1"HREF="ch27_05.htm"TITLE="27.5 Extended Searching for Text with egrep ">Extended Searching for Text with egrep </A><BR><ACLASS="sect1"HREF="ch27_06.htm"TITLE="27.6 Fast grep Isn't ">Fast grep Isn't </A><BR><ACLASS="sect1"HREF="ch27_07.htm"TITLE="27.7 grepping for a List of Patterns ">grepping for a List of Patterns </A><BR><ACLASS="sect1"HREF="ch27_08.htm"TITLE="27.8 glimpse and agrep ">glimpse and agrep </A><BR><ACLASS="sect1"HREF="ch27_09.htm"TITLE="27.9 New greps Are Much Faster ">New greps Are Much Faster </A><BR><ACLASS="sect1"HREF="ch27_10.htm"TITLE="27.10 Search RCS Files with rcsgrep ">Search RCS Files with rcsgrep </A><BR><ACLASS="sect1"HREF="ch27_11.htm"TITLE="27.11 A Multiline Context grep Using sed ">A Multiline Context grep Using sed </A><BR><ACLASS="sect1"HREF="ch27_12.htm"TITLE="27.12 Make Custom grep Commands (etc.) with perl ">Make Custom grep Commands (etc.) with perl </A><BR><ACLASS="sect1"HREF="ch27_13.htm"TITLE="27.13 More grep-like Programs Written in Perl ">More grep-like Programs Written in Perl </A><BR><ACLASS="sect1"HREF="ch27_14.htm"TITLE="27.14 Compound Searches ">Compound Searches </A><BR><ACLASS="sect1"HREF="ch27_15.htm"TITLE="27.15 Narrowing a Search Quickly ">Narrowing a Search Quickly </A><BR><ACLASS="sect1"HREF="ch27_16.htm"TITLE="27.16 Faking Case-Insensitive Searches ">Faking Case-Insensitive Searches </A><BR><ACLASS="sect1"HREF="ch27_17.htm"TITLE="27.17 Finding a Character in a Column ">Finding a Character in a Column </A><BR><ACLASS="sect1"HREF="ch27_18.htm"TITLE='27.18 Fast Searches and Spelling Checks with  "look&quot;'>Fast Searches and Spelling Checks with  &quot;look&quot;</A><BR><ACLASS="sect1"HREF="ch27_19.htm"TITLE="27.19 Finding Words Inside Binary Files ">Finding Words Inside Binary Files </A><BR><ACLASS="sect1"HREF="ch27_20.htm"TITLE="27.20 A Highlighting grep ">A Highlighting grep </A></P><P></P></DIV><DIVCLASS="sect1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-7420">27.1 Different Versions of grep </A></H2><PCLASS="para"><EMCLASS="emphasis">grep</EM> is one of UNIX's most useful tools. As a result, everyoneseems to want their own, slightly different version that solves adifferent piece of the problem. (Maybe this is a problem in itself;there really should be only one <EMCLASS="emphasis">grep</EM>, as the manual page says.)Three versions of <EMCLASS="emphasis">grep</EM> come with every UNIX system; in addition,there are six or seven freely available versions that we'll mention here,and probably dozens of others that you can find kicking around theNet.<ACLASS="indexterm"NAME="UPT-ART-7420-IX-FILES-SEARCHING-GREP-COMMAND"></A><ACLASS="indexterm"NAME="UPT-ART-7420-IX-GREP-COMMAND--"></A></P><PCLASS="para">Here are the different versions of <EMCLASS="emphasis">grep</EM> and what they offer.We'll start with the standard versions:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para">Plain old <EMCLASS="emphasis">grep</EM>: great for searching with regular expressions(article<ACLASS="xref"HREF="ch27_02.htm"TITLE="Searching for Text with grep ">27.2</A>).</P></LI><LICLASS="listitem"><PCLASS="para">Extended <EMCLASS="emphasis">grep</EM> (or <EMCLASS="emphasis">egrep</EM>): handles extendedregular expressions. It is also, arguably, the fastest ofthe standard <EMCLASS="emphasis">grep</EM>s (article<ACLASS="xref"HREF="ch27_05.htm"TITLE="Extended Searching for Text with egrep ">27.5</A>).</P></LI><LICLASS="listitem"><PCLASS="para">So-called &quot;fast <EMCLASS="emphasis">grep</EM>,&quot; or <EMCLASS="emphasis">fgrep</EM>. Actually, this is theslowest of them all.Useful to search for patterns with literal backslashes, asterisks,and so on that you'd otherwise have to escape somehow.Has the interestingability to search for multiple strings (articles<ACLASS="xref"HREF="ch27_06.htm"TITLE="Fast grep Isn't ">27.6</A>,<ACLASS="xref"HREF="ch27_07.htm"TITLE="grepping for a List of Patterns ">27.7</A>).</P></LI></UL><PCLASS="para">Now for the public domain versions:</P><ULCLASS="itemizedlist"><LICLASS="listitem"><PCLASS="para"><EMCLASS="emphasis">agrep</EM>, or &quot;approximate <EMCLASS="emphasis">grep</EM>&quot;; a tool that finds lines that&quot;more or less&quot; match your search string.A very interesting and useful tool, it's part of the <EMCLASS="emphasis">glimpse</EM> package.<EMCLASS="emphasis">Glimpse</EM> is an indexing and query system for fast searching of hugeamounts of text.Both are introduced in article<ACLASS="xref"HREF="ch27_08.htm"TITLE="glimpse and agrep ">27.8</A>.</P></LI><LICLASS="listitem"><PCLASS="para">Very fast versions of <EMCLASS="emphasis">grep</EM>, such as the Free SoftwareFoundation's <EMCLASS="emphasis">egrep</EM> (article <ACLASS="xref"HREF="ch27_09.htm"TITLE="New greps Are Much Faster ">27.9</A>).</P></LI><LICLASS="listitem"><PCLASS="para"><EMCLASS="emphasis">rcsgrep</EM>, which searches through <SPANCLASS="link">RCS files (<ACLASS="linkend"HREF="ch20_14.htm"TITLE="RCS Basics ">20.14</A>)</SPAN>(article<ACLASS="xref"HREF="ch27_10.htm"TITLE="Search RCS Files with rcsgrep ">27.10</A>).</P></LI></UL><PCLASS="para">In addition, you can simulate the action of <EMCLASS="emphasis">grep</EM> with <EMCLASS="emphasis">sed</EM>, <EMCLASS="emphasis">awk</EM>, and<EMCLASS="emphasis">perl</EM>.These utilities allow you to write such variations as a <EMCLASS="emphasis">grep</EM> that searches for a <SPANCLASS="link">pattern that can be split across several lines (<ACLASS="linkend"HREF="ch27_11.htm"TITLE="A Multiline Context grep Using sed ">27.11</A>)</SPAN>and other<SPANCLASS="link">context <EMCLASS="emphasis">grep</EM> programs (<ACLASS="linkend"HREF="ch27_12.htm"TITLE="Make Custom grep Commands (etc.) with perl ">27.12</A>, <ACLASS="linkend"HREF="ch27_13.htm"TITLE="More grep-like Programs Written in Perl ">27.13</A>)</SPAN>,which show you a few lines before and after thetext you find.(Normal <EMCLASS="emphasis">grep</EM>s just show the lines that match.)</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">ML</SPAN></P></DIV></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="ch26_10.htm"TITLE="26.10 Pattern Matching Quick Reference with Examples "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 26.10 Pattern Matching Quick Reference with Examples "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="ch27_02.htm"TITLE="27.2 Searching for Text with grep "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 27.2 Searching for Text with grep "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">26.10 Pattern Matching Quick Reference with Examples </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">27.2 Searching for Text with grep </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 + -