aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/grep.xml
blob: d4e17ba5d7112006948b39642f7183f8df6fa150 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-grep" role="wrap">
  <?dbhtml filename="grep.html"?>

  <sect1info condition="script">
    <productname>grep</productname>
    <productnumber>&grep-version;</productnumber>
    <address>&grep-url;</address>
  </sect1info>

  <title>Grep-&grep-version;</title>

  <indexterm zone="ch-system-grep">
    <primary sortas="a-Grep">Grep</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>The Grep package contains programs for searching through files.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&grep-ch6-sbu;</seg>
        <seg>&grep-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Grep</title>

    <para>The current Grep package has many bugs, especially in the support of
    multibyte locales. The following consolidated patch from Debian fixes some of them,
    improves the number of individual tests which are passed, and much improves the
    speed in UTF-8 locales:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&grep-debian-patch;</userinput></screen>

    <para>Prepare Grep for compilation:</para>

<screen><userinput remap="configure">./configure --prefix=/usr \
    --bindir=/bin \
    --without-included-regex</userinput></screen>


    <variablelist>
      <title>The meaning of the configure switch:</title>
      <varlistentry>
        <term><parameter>--without-included-regex</parameter></term>
        <listitem>
          <para>The configure check for Glibc's regex library is broken when
          building against Glibc-&glibc-version;.  This switch forces the use
          of Glibc's regex library.</para>
        </listitem>
      </varlistentry>
    </variablelist>


    <para>Compile the package:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>To test the results, issue:</para>

<screen><userinput remap="test">make check || true</userinput></screen>

    <para>There are known test failures in the <command>fmbtest.sh</command>
    tests.  The &quot;|| true&quot; construct is
    used to avoid automated build scripts failing due to the test failures.
    A good run will show 1 failure from 14 tests, although the test failure
    will detail 2 failed sub-tests.</para>

    <para>Install the package:</para>

<screen><userinput remap="install">make install</userinput></screen>

  </sect2>

  <sect2 id="contents-grep" role="content">
    <title>Contents of Grep</title>

    <segmentedlist>
      <segtitle>Installed programs</segtitle>

      <seglistitem>
        <seg>egrep, fgrep, and grep</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="egrep">
        <term><command>egrep</command></term>
        <listitem>
          <para>Prints lines matching an extended regular expression</para>
          <indexterm zone="ch-system-grep egrep">
            <primary sortas="b-egrep">egrep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="fgrep">
        <term><command>fgrep</command></term>
        <listitem>
          <para>Prints lines matching a list of fixed strings</para>
          <indexterm zone="ch-system-grep fgrep">
            <primary sortas="b-fgrep">fgrep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="grep">
        <term><command>grep</command></term>
        <listitem>
          <para>Prints lines matching a basic regular expression</para>
          <indexterm zone="ch-system-grep grep">
            <primary sortas="b-grep">grep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>