[1/1] */*: egrep -> grep -E, fgrep -> grep -F

Message ID 20220605040845.854206-2-sam@gentoo.org
State Committed
Commit 7df596a58cdfa763924487b8c275269de3497304
Headers
Series Replace obsolete grep aliases |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Sam James June 5, 2022, 4:08 a.m. UTC
  Newer versions of grep (after grep 3.7, not inclusive) will warn on
'egrep' and 'fgrep' invocations.

Convert usages within the tree to their expanded non-aliased counterparts
to avoid irritating warnings during ./configure and the test suite.

Signed-off-by: Sam James <sam@gentoo.org>
---
 Makefile                       |  4 +--
 aclocal.m4                     |  2 +-
 elf/Makefile                   |  2 +-
 elf/tst-rtld-list-tunables.sh  |  2 +-
 iconvdata/big5.c               | 30 +++++++++++-----------
 iconvdata/cns11643.c           | 26 +++++++++----------
 iconvdata/cns11643l1.c         | 46 +++++++++++++++++-----------------
 iconvdata/gb2312.c             | 34 ++++++++++++-------------
 iconvdata/gbk.c                | 24 +++++++++---------
 iconvdata/jis0208.c            | 14 +++++------
 iconvdata/jis0212.c            |  8 +++---
 iconvdata/ksc5601.c            | 12 ++++-----
 iconvdata/sjis.c               | 14 +++++------
 iconvdata/uhc.c                |  4 +--
 io/ftwtest-sh                  |  2 +-
 manual/libc-texinfo.sh         |  2 +-
 po/Makefile                    |  4 +--
 scripts/check-c++-types.sh     |  4 +--
 scripts/documented.sh          |  4 +--
 sysdeps/arm/configure          |  2 +-
 sysdeps/arm/configure.ac       |  2 +-
 sysdeps/i386/configure         |  2 +-
 sysdeps/i386/tst-ld-sse-use.sh |  6 ++---
 sysdeps/ia64/fpu/import_check  |  4 +--
 24 files changed, 127 insertions(+), 127 deletions(-)
  

Comments

Fangrui Song June 5, 2022, 5:42 a.m. UTC | #1
> [PATCH 1/1] */*: egrep -> grep -E, fgrep -> grep -F

I do not see previous occurrences of */* in the subject line, but I
assume it's ok. In the Linux kernel folks tend to use `treewide:`.
I see that there is exactly one glibc commit using `treewide:`.

On 2022-06-05, Sam James via Libc-alpha wrote:
>Newer versions of grep (after grep 3.7, not inclusive) will warn on
>'egrep' and 'fgrep' invocations.

Confirmed: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
("egrep, fgrep: now obsolete")

>Convert usages within the tree to their expanded non-aliased counterparts
>to avoid irritating warnings during ./configure and the test suite.
>
>Signed-off-by: Sam James <sam@gentoo.org>

```
for i in **/configure.ac; do ~/projects/autoconf-2.69/bin/autoconf -I.  $i > ${i/.ac}; done
```
does not update any file, so this patch correctly updates all relevant configure files.

Reviewed-by: Fangrui Song <maskray@google.com>

>---
> Makefile                       |  4 +--
> aclocal.m4                     |  2 +-
> elf/Makefile                   |  2 +-
> elf/tst-rtld-list-tunables.sh  |  2 +-
> iconvdata/big5.c               | 30 +++++++++++-----------
> iconvdata/cns11643.c           | 26 +++++++++----------
> iconvdata/cns11643l1.c         | 46 +++++++++++++++++-----------------
> iconvdata/gb2312.c             | 34 ++++++++++++-------------
> iconvdata/gbk.c                | 24 +++++++++---------
> iconvdata/jis0208.c            | 14 +++++------
> iconvdata/jis0212.c            |  8 +++---
> iconvdata/ksc5601.c            | 12 ++++-----
> iconvdata/sjis.c               | 14 +++++------
> iconvdata/uhc.c                |  4 +--
> io/ftwtest-sh                  |  2 +-
> manual/libc-texinfo.sh         |  2 +-
> po/Makefile                    |  4 +--
> scripts/check-c++-types.sh     |  4 +--
> scripts/documented.sh          |  4 +--
> sysdeps/arm/configure          |  2 +-
> sysdeps/arm/configure.ac       |  2 +-
> sysdeps/i386/configure         |  2 +-
> sysdeps/i386/tst-ld-sse-use.sh |  6 ++---
> sysdeps/ia64/fpu/import_check  |  4 +--
> 24 files changed, 127 insertions(+), 127 deletions(-)
>
>diff --git a/Makefile b/Makefile
>index a9722a161c..179dd478ff 100644
>--- a/Makefile
>+++ b/Makefile
>@@ -565,10 +565,10 @@ $(objpfx)check-wrapper-headers.out: scripts/check-wrapper-headers.py $(headers)
> endif # $(headers)
>
> define summarize-tests
>-@egrep -v '^(PASS|XFAIL):' $(objpfx)$1 || true
>+@grep -E -v '^(PASS|XFAIL):' $(objpfx)$1 || true
> @echo "Summary of test results$2:"
> @sed 's/:.*//' < $(objpfx)$1 | sort | uniq -c
>-@! egrep -q -v '^(X?PASS|XFAIL|UNSUPPORTED):' $(objpfx)$1
>+@! grep -E -q -v '^(X?PASS|XFAIL|UNSUPPORTED):' $(objpfx)$1
> endef
>
> # The intention here is to do ONE install of our build into the
>diff --git a/aclocal.m4 b/aclocal.m4
>index 3e0bcdd12b..3b4df4a371 100644
>--- a/aclocal.m4
>+++ b/aclocal.m4
>@@ -280,7 +280,7 @@ int _start (void) { $2 return 0; }
> EOF
> if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
> 		     $3 -nostdlib -nostartfiles
>-		     -S conftest.c -o - | fgrep "$1"
>+		     -S conftest.c -o - | grep -F "$1"
> 		     1>&AS_MESSAGE_LOG_FD])
> then
>   libc_compiler_builtin_inlined=yes
>diff --git a/elf/Makefile b/elf/Makefile
>index bfc9179fc5..2b646a91e0 100644
>--- a/elf/Makefile
>+++ b/elf/Makefile
>@@ -1315,7 +1315,7 @@ $(objpfx)librtld.mk: $(objpfx)librtld.map Makefile
> 	while read lib file; do \
> 	  case $$lib in \
> 	  libc_pic.a) \
>-	    LC_ALL=C fgrep -l /$$file \
>+	    LC_ALL=C grep -F -l /$$file \
> 		  $(common-objpfx)stamp.os $(common-objpfx)*/stamp.os | \
> 	    LC_ALL=C \
> 	    sed 's@^$(common-objpfx)\([^/]*\)/stamp\.os$$@rtld-\1'" +=$$file@"\
>diff --git a/elf/tst-rtld-list-tunables.sh b/elf/tst-rtld-list-tunables.sh
>index 70875bb5ab..52a3464c32 100755
>--- a/elf/tst-rtld-list-tunables.sh
>+++ b/elf/tst-rtld-list-tunables.sh
>@@ -41,5 +41,5 @@ ${test_wrapper_env} \
> ${run_program_env} \
> $rtld --list-tunables \
> | sort -u \
>-| egrep "(rtld|malloc)" \
>+| grep -E "(rtld|malloc)" \
> | sed -e "s/0xf\+/0x[f]+/"
>diff --git a/iconvdata/big5.c b/iconvdata/big5.c
>index 68c88cd78f..f469d41530 100644
>--- a/iconvdata/big5.c
>+++ b/iconvdata/big5.c
>@@ -27,7 +27,7 @@
> /* Table for Big5 to UCS conversion. This is generated from the BIG5
>    charmap, using the following command:
>
>-	egrep "/x../x.." BIG5 | egrep -v "^% " | sed 's/%IRREVERSIBLE%//' | \
>+	grep -E "/x../x.." BIG5 | grep -E -v "^% " | sed 's/%IRREVERSIBLE%//' | \
> 	perl segA.pl > segA
>
>    where segA.pl script is:
>@@ -3600,45 +3600,45 @@ static const char from_ucs4_tab1[256][2] =
>
> ---------------------------------------------------------------------
> rm -f segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U02" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U02" | sort | \
> 	perl segB2.pl 2 0x02C7 0x02D9 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U03" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U03" | sort | \
> 	perl segB2.pl 3 0x0391 0x03C9 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U20[1-3]" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U20[1-3]" | sort | \
> 	perl segB2.pl 4 0x2013 0x203B >> segB2
>
> ( Separate U20AC, U2103, U2105, U2109 )
>
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U216" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U216" | sort | \
> 	perl segB2.pl 5 0x2160 0x2169 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U219" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U219" | sort | \
> 	perl segB2.pl 6 0x2190 0x2199 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U22[1-6]" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U22[1-6]" | sort | \
> 	perl segB2.pl 7 0x2215 0x2267 >> segB2
>
> ( Separate U2295, U2299, U22A5, U22BF )
>
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U2[56]" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U2[56]" | sort | \
> 	perl segB2.pl 8 0x2500 0x2642 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U30" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U30" | sort | \
> 	perl segB2.pl 9 0x3000 0x3029 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U31" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U31" | sort | \
> 	perl segB2.pl 10 0x3105 0x3129 >> segB2
>
> ( Separate U32A3 )
>
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U33" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U33" | sort | \
> 	perl segB2.pl 11 0x338E 0x33D5 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U[4-9]" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U[4-9]" | sort | \
> 	perl segB2.pl 12 0x4E00 0x9FA4 >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UF[678]" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UF[678]" | sort | \
> 	perl segB2.pl 13 0xF6B1 0xF848 >> segB2
>
> ( Separate UFA0C, UFA0D )
>
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UFE" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UFE" | sort | \
> 	perl segB2.pl 14 0xFE30 0xFE6B >> segB2
>-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UFF" | sort | \
>+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UFF" | sort | \
> 	perl segB2.pl 15 0xFF01 0xFFE5 >> segB2
> ---------------------------------------------------------------------
>
>diff --git a/iconvdata/cns11643.c b/iconvdata/cns11643.c
>index 8425b449ae..5c41a4ab0a 100644
>--- a/iconvdata/cns11643.c
>+++ b/iconvdata/cns11643.c
>@@ -38,7 +38,7 @@
>
>    The table can be generated using
>
>-   egrep '^0x2' CNS11643.TXT |
>+   grep -E '^0x2' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -1979,7 +1979,7 @@ const uint16_t __cns11643l2_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0x3' CNS11643.TXT |
>+   grep -E '^0x3' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -3606,7 +3606,7 @@ const uint32_t __cns11643l3_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0x4' CNS11643.TXT |
>+   grep -E '^0x4' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -5456,7 +5456,7 @@ const uint32_t __cns11643l4_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0x5' CNS11643.TXT |
>+   grep -E '^0x5' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -7635,7 +7635,7 @@ const uint32_t __cns11643l5_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0x6' CNS11643.TXT |
>+   grep -E '^0x6' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -9260,7 +9260,7 @@ const uint32_t __cns11643l6_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0x7' CNS11643.TXT |
>+   grep -E '^0x7' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -10923,7 +10923,7 @@ const uint32_t __cns11643l7_to_ucs4_tab[] =
>
>    The table can be generated using
>
>-   egrep '^0xF' CNS11643.TXT |
>+   grep -E '^0xF' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -12633,8 +12633,8 @@ const uint32_t __cns11643l15_to_ucs4_tab[] =
>    CJK Ideographs in the UCS plane 0: range U+3400..U+9FA5.
>    The table can be created using
>
>-   egrep '^0x' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x(3[4-9A-F]|[4-9])' | perl tab.pl
>+   grep -E '^0x' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x(3[4-9A-F]|[4-9])' | perl tab.pl
>
>    where tab.pl is
>
>@@ -24796,8 +24796,8 @@ const char __cns11643_from_ucs4p0_tab[][3] =
> /* CJK Ideographs in the UCS plane 2: range U+20000..U+2A6D6.
>    The table can be created using
>
>-   egrep '^0x' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x2[0-9A]... ' | perl tab.pl
>+   grep -E '^0x' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[0-9A]... ' | perl tab.pl
>
>    where tab.pl is
>
>@@ -39911,8 +39911,8 @@ const char __cns11643_from_ucs4p2_tab[][3] =
> /* CJK Compatibility Ideographs in the UCS plane 2: range U+2F800..U+2FA1D.
>    The table can be created using
>
>-   egrep '^0x' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x2F... ' | perl tab.pl
>+   grep -E '^0x' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x2F... ' | perl tab.pl
>
>    where tab.pl is
>
>diff --git a/iconvdata/cns11643l1.c b/iconvdata/cns11643l1.c
>index 839cc84f72..96bd962ecc 100644
>--- a/iconvdata/cns11643l1.c
>+++ b/iconvdata/cns11643l1.c
>@@ -32,7 +32,7 @@
>
>    The table can be generated using
>
>-   egrep '^0x1' CNS11643.TXT |
>+   grep -E '^0x1' CNS11643.TXT |
>    awk '{print $1, $2}' | perl tab.pl
>
>    where tab.pl is:
>@@ -1540,8 +1540,8 @@ const char __cns11643l1_from_ucs4_tab2[][2] =
>
> /* Greek alphabet.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x03' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x03' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1581,8 +1581,8 @@ const char __cns11643l1_from_ucs4_tab3[][2] =
>
> /* General punctuation.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x20' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x20' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1619,8 +1619,8 @@ const char __cns11643l1_from_ucs4_tab5[][2] =
>
> /* Mathematical operators.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x22[1-6]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x22[1-6]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1650,8 +1650,8 @@ const char __cns11643l1_from_ucs4_tab6[][2] =
>
> /* Graphic pictures for control codes.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x24[0-2]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x24[0-2]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1686,8 +1686,8 @@ const char __cns11643l1_from_ucs4_tab7[][2] =
>
> /* Circled and Parenthesized numbers.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x24[67]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x24[67]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1718,8 +1718,8 @@ const char __cns11643l1_from_ucs4_tab8[][2] =
>
> /* Circled and Parenthesized numbers.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x2[56]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[56]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1763,8 +1763,8 @@ const char __cns11643l1_from_ucs4_tab9[][2] =
>
> /* CJK punctuation and Hangzhou-style numerals.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x30[0-2]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x30[0-2]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1798,8 +1798,8 @@ const char __cns11643l1_from_ucs4_tab10[][2] =
>
> /* Squared latin abbreviations.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x33' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x33' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1827,8 +1827,8 @@ const char __cns11643l1_from_ucs4_tab11[][2] =
>
> /* CJK Ideographs.  The table can be created using
>
>-   egrep '^0x1' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x[4-9]' | perl tab.pl
>+   grep -E '^0x1' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x[4-9]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -3657,8 +3657,8 @@ const char __cns11643l1_from_ucs4_tab12[][2] =
>
> /* Glyphs for vertical variants.  The table can be created using
>
>-   egrep '^0x' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0xFE' | perl tab.pl
>+   grep -E '^0x' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0xFE' | perl tab.pl
>
>    where tab.pl is
>
>@@ -3699,8 +3699,8 @@ const char __cns11643l1_from_ucs4_tab13[][2] =
>
> /* Fullwidth ASCII variants.  The table can be created using
>
>-   egrep '^0x' CNS11643.TXT |
>-   awk '{ print $2, $1 }' | sort | egrep '^0xFF[0-5]' | perl tab.pl
>+   grep -E '^0x' CNS11643.TXT |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0xFF[0-5]' | perl tab.pl
>
>    where tab.pl is
>
>diff --git a/iconvdata/gb2312.c b/iconvdata/gb2312.c
>index 3bab2268a4..760040a799 100644
>--- a/iconvdata/gb2312.c
>+++ b/iconvdata/gb2312.c
>@@ -20,7 +20,7 @@
>
> /* The conversion table to UCS4 has almost no holes.  It can be generated with:
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>    perl tab.pl
>
>    where tab.pl is:
>@@ -1918,8 +1918,8 @@ const char __gb2312_from_ucs4_tab1[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x03' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x03' | perl tab.pl
>
>    where tab.pl is
>
>@@ -1959,8 +1959,8 @@ const char __gb2312_from_ucs4_tab2[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x04' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x04' | perl tab.pl
>
>    where tab.pl is
>
>@@ -2006,8 +2006,8 @@ const char __gb2312_from_ucs4_tab3[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x20' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x20' | perl tab.pl
>
>    where tab.pl is
>
>@@ -2035,8 +2035,8 @@ const char __gb2312_from_ucs4_tab4[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x2[12]' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[12]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -2076,8 +2076,8 @@ const char __gb2312_from_ucs4_tab5[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x24' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x24' | perl tab.pl
>
>    where tab.pl is
>
>@@ -2118,8 +2118,8 @@ const char __gb2312_from_ucs4_tab6[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x3[01]' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x3[01]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -2219,8 +2219,8 @@ const char __gb2312_from_ucs4_tab7[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0x[4-9]' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0x[4-9]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -4499,8 +4499,8 @@ const char __gb2312_from_ucs4_tab8[][2] =
>
> /* The table can be created using
>
>-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>-   awk '{ print $2, $1 }' | sort | egrep '^0xFF[0-5]' | perl tab.pl
>+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
>+   awk '{ print $2, $1 }' | sort | grep -E '^0xFF[0-5]' | perl tab.pl
>
>    where tab.pl is
>
>diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c
>index 97717181f4..53e865e74a 100644
>--- a/iconvdata/gbk.c
>+++ b/iconvdata/gbk.c
>@@ -5543,7 +5543,7 @@ static const uint16_t __gbk_to_ucs[] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x00' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x00' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5574,7 +5574,7 @@ static const char __gbk_from_ucs4_tab1[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x03' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x03' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5614,7 +5614,7 @@ static const char __gbk_from_ucs4_tab2[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x04' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x04' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5660,7 +5660,7 @@ static const char __gbk_from_ucs4_tab3[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x20' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x20' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5690,7 +5690,7 @@ static const char __gbk_from_ucs4_tab4[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x2[12]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x2[12]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5738,7 +5738,7 @@ static const char __gbk_from_ucs4_tab5[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x2[4-6]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x2[4-6]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5829,7 +5829,7 @@ static const char __gbk_from_ucs4_tab6[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x3[0-3]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x3[0-3]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -5943,7 +5943,7 @@ static const char __gbk_from_ucs4_tab7[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x[4-9]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x[4-9]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -12935,7 +12935,7 @@ static const char __gbk_from_ucs4_tab8[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xE[78]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xE[78]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -12993,7 +12993,7 @@ static const char __gbk_from_ucs4_tab9[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFA[0-2]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFA[0-2]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -13023,7 +13023,7 @@ static const char __gbk_from_ucs4_tab10[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFE[3-6]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFE[3-6]' | perl tab.pl
>
>    where tab.pl is
>
>@@ -13065,7 +13065,7 @@ static const char __gbk_from_ucs4_tab11[][2] =
>
> /* The table can be created using
>
>-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFF[0-5]' | perl tab.pl
>+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFF[0-5]' | perl tab.pl
>
>    where tab.pl is
>
>diff --git a/iconvdata/jis0208.c b/iconvdata/jis0208.c
>index 4bfc68d66c..e2940113df 100644
>--- a/iconvdata/jis0208.c
>+++ b/iconvdata/jis0208.c
>@@ -38,7 +38,7 @@
>    It's not worth trying to use these gaps.  The table can be generated
>    using
>
>-   egrep '^0x' < .../eastasia/jis/jis0208.txt |
>+   grep -E '^0x' < .../eastasia/jis/jis0208.txt |
>    perl tab.pl
>
>    with tab.pl containing:
>@@ -1800,8 +1800,8 @@ const char __jisx0208_from_ucs4_lat1[JIS0208_LAT1_MAX + 1
>
> /* The following table can be generated using
>
>-   egrep '^0x' < .../eastasia/jis/jis0208.txt |
>-   awk '{ print $3, $2}' | egrep '^0x0[34]' | sort -u | perl tab.pl
>+   grep -E '^0x' < .../eastasia/jis/jis0208.txt |
>+   awk '{ print $3, $2}' | grep -E '^0x0[34]' | sort -u | perl tab.pl
>
>    where tab.pl contains:
>
>@@ -1868,8 +1868,8 @@ const char __jisx0208_from_ucs4_greek[0xc1][2] =
>    unpredictable place and size.  Therefore we use a table which maps
>    ranges to idexes in a table.  This table ca be generated with:
>
>-   egrep '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
>-   egrep '^0x[^01]' | sort -u | perl tab.pl
>+   grep -E '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
>+   grep -E '^0x[^01]' | sort -u | perl tab.pl
>
>    where tab.pl is
>
>@@ -2610,8 +2610,8 @@ const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[] =
>    therefore indexed using UCS with leaving large gaps out.  It can
>    be computed with
>
>-   egrep '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
>-   egrep '^0x[^01]' | sort -u | perl tag.pl
>+   grep -E '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
>+   grep -E '^0x[^01]' | sort -u | perl tag.pl
>
>    where tab.pl is
>
>diff --git a/iconvdata/jis0212.c b/iconvdata/jis0212.c
>index 5799cd7b60..5ca559a76f 100644
>--- a/iconvdata/jis0212.c
>+++ b/iconvdata/jis0212.c
>@@ -25,7 +25,7 @@
>    char in a table resulting in an index to a table with the UCS.  The
>    following command can be used to generate the table:
>
>-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>      .../eastasia/jis/jis0212.txt | perl tab.pl
>
>    where tab.pl is
>@@ -71,7 +71,7 @@ const struct jisx0212_idx __jisx0212_to_ucs_idx[] =
> /* The table which the UCS values indexed by the table above can be
>    generated using the following code:
>
>-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>      .../eastasia/jis/jis0212.txt | perl tab.pl
>
>    where tab.pl is:
>@@ -876,7 +876,7 @@ const uint16_t __jisx0212_to_ucs[] =
>    use again a two-step mapping table.  The index table can be computed
>    using
>
>-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>      ../eastasia/jis/jis0212.txt | awk '{ print $2, $1 }' | sort -u |
>    perl tab.pl
>
>@@ -1657,7 +1657,7 @@ const struct jisx0212_idx __jisx0212_from_ucs_idx[] =
>
> /* The values corresponding to the table can be computed using
>
>-    egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>+    grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>       .../eastasia/jis/jis0212.txt | awk '{ print $2, $1 }' |
>     sort -u | perl tab.pl
>
>diff --git a/iconvdata/ksc5601.c b/iconvdata/ksc5601.c
>index 922ec8b0c5..533f7bca17 100644
>--- a/iconvdata/ksc5601.c
>+++ b/iconvdata/ksc5601.c
>@@ -20,8 +20,8 @@
> #include "ksc5601.h"
>
> /*
>-egrep  '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>-egrep -v '^0x[4-9AD-F]' | egrep -v '^0x..([4-9].|A0)' | \
>+grep -E '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E -v '^0x[4-9AD-F]' | grep -E -v '^0x..([4-9].|A0)' | \
> perl tab21.pl > ksc_hangul1.tb
>
> ----------
>@@ -350,7 +350,7 @@ const uint16_t __ksc5601_hangul_to_ucs[KSC5601_HANGUL]=
>     and UCS-4. It's used to convert symbols in  EUC-KR, ISO-2022-KR,
>     Johab, UHC to UCS-4.
>
>-egrep '^0xA[1-C]' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E '^0xA[1-C]' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
> grep -v '# HANGUL SYLLABLE' | perl tab11.pl  > ksc_sym1.tb
>
>    $n=0;
>@@ -624,7 +624,7 @@ const uint16_t __ksc5601_sym_to_ucs[] =
>
>  Mapping table from UCS4 to symbols defined in KS C 5601-1987.
>
>-egrep '^0xA[1-C]' /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E '^0xA[1-C]' /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
> grep -v '# HANGUL SYLLABLE' | awk '{print $2, $1}' | sort -u |
> perl tab12.pl > ksc_sym2.tb
>
>@@ -981,7 +981,7 @@ const struct map __ksc5601_sym_from_ucs[KSC5601_SYMBOL] =
> };
>
> /*
>-egrep  '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
> perl tab21.pl > ksc_hanja1.tb
>
>
>@@ -1613,7 +1613,7 @@ const uint16_t __ksc5601_hanja_to_ucs[KSC5601_HANJA]=
> };
>
> /*
>-egrep  '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
> awk '{print $2,$1}' | sort -u | perl tab12.pl > ksc_hanja2.tb
>
>    $n=0;
>diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
>index 5aea18b314..e4f143813a 100644
>--- a/iconvdata/sjis.c
>+++ b/iconvdata/sjis.c
>@@ -26,7 +26,7 @@
>    from the Unicode CD (also available on their FTP server) using
>    the command
>
>-	egrep '^0x8[01234][[:xdigit:]][[:xdigit:]]' \
>+	grep -E '^0x8[01234][[:xdigit:]][[:xdigit:]]' \
> 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
>
>    where sjis.pl contains:
>@@ -185,7 +185,7 @@ static const uint16_t cjk_block1[703] =
>    from the Unicode CD (also available on their FTP server) using
>    the command
>
>-	egrep '^0x8[89][[:xdigit:]][[:xdigit:]]' \
>+	grep -E '^0x8[89][[:xdigit:]][[:xdigit:]]' \
> 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
>
>    where sjis.pl contains:
>@@ -235,7 +235,7 @@ static const uint16_t cjk_block2[94] =
>    from the Unicode CD (also available on their FTP server) using
>    the command
>
>-	egrep '^0x(8[9a-fA-F]|9[[:xdigit:]])[[:xdigit:]][[:xdigit:]]' \
>+	grep -E '^0x(8[9a-fA-F]|9[[:xdigit:]])[[:xdigit:]][[:xdigit:]]' \
> 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
>
>    where sjis.pl contains:
>@@ -1333,7 +1333,7 @@ static const uint16_t cjk_block3[4413] =
>    from the Unicode CD (also available on their FTP server) using
>    the command
>
>-	egrep '^0x[eE][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
>+	grep -E '^0x[eE][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
> 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
>
>    where sjis.pl contains:
>@@ -1856,7 +1856,7 @@ static const uint16_t cjk_block4[2021] =
> /* The following table can be generated using
>
>    awk '/^0x/ { print $2, $1; }' < .../eastasia/jis/shiftjis.txt |
>-   egrep "^0x00[[:xdigit:]][[:xdigit:]]" |
>+   grep -E "^0x00[[:xdigit:]][[:xdigit:]]" |
>    sort -u | perl tab.pl
>
>    where tab.pl is
>@@ -1938,7 +1938,7 @@ static const char from_ucs4_lat1[0xf8][2] =
> /* The following table can be generated using
>
>    awk '/^0x/ { print $2, $1; }' < .../eastasia/jis/shiftjis.txt |
>-   egrep "^0x0[34][[:xdigit:]][[:xdigit:]]" |
>+   grep -E "^0x0[34][[:xdigit:]][[:xdigit:]]" |
>    sort -u | perl tab.pl
>
>    where tab.pl is
>@@ -2007,7 +2007,7 @@ static const char from_ucs4_greek[193][2] =
>    The following table can be generated using
>
>    awk '/^0x/ { print $2, $1; }' < ...eastasia/jis/shiftjis.txt |
>-   egrep "^0x[2-9][[:xdigit:]][[:xdigit:]][[:xdigit:]]" |
>+   grep -E "^0x[2-9][[:xdigit:]][[:xdigit:]][[:xdigit:]]" |
>    sort -u | perl tab.pl
>
>    where tab.pl is
>diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
>index 3277695735..9b222d358d 100644
>--- a/iconvdata/uhc.c
>+++ b/iconvdata/uhc.c
>@@ -22,7 +22,7 @@
>
>
> /*
>-egrep \
>+grep -E \
> '^0x([89][0-9A-F]..|A0..|[AB][0-9A-F][4-9].|[AB][0-9A-F]A0|C[0-6][4-9].|C[0-6]A0)' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | perl tab.pl
>
> ------tab.pl
>@@ -1150,7 +1150,7 @@ static const uint32_t uhc_extra_to_ucs[8822]=
> };
>
> /*
>-egrep  '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>+grep -E '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
>  awk '{print $2, $1}' | sort -u | perl tab.pl
>
> -----tab.pl
>diff --git a/io/ftwtest-sh b/io/ftwtest-sh
>index db82d4871b..174a3ab6a5 100644
>--- a/io/ftwtest-sh
>+++ b/io/ftwtest-sh
>@@ -268,7 +268,7 @@ $testprogram --skip-siblings=file@1b $tmpdir |
> regexp=`echo $(ls -U $tmp/$ftwtest/foo/lvl1b \
> 	       | sed -n '/file@1b$/,${/file[23]@1b$/p;}') | sed 's, ,|,'`
> catcmd=cat
>-[ -n "$regexp" ] && catcmd="egrep -v $regexp"
>+[ -n "$regexp" ] && catcmd="grep -E -v $regexp"
>
> $catcmd <<EOF | diff -u $testout - || exit 1
> base = "$tmp/", file = "$ftwtest", flag = FTW_D, level = 0
>diff --git a/manual/libc-texinfo.sh b/manual/libc-texinfo.sh
>index aea27f9e94..1cf35012c6 100644
>--- a/manual/libc-texinfo.sh
>+++ b/manual/libc-texinfo.sh
>@@ -22,7 +22,7 @@ build_menu () {
> }
>
> collect_nodes () {
>-  egrep '^(@c )?@node.*Top' "$@" /dev/null | cut -d, -f-2 |
>+  grep -E '^(@c )?@node.*Top' "$@" /dev/null | cut -d, -f-2 |
>   sed 's/@c //; s/, /:/; s/:@node /:/; s/ /_/g; s/:/ /g' |
>   $AWK '{ file[$2] = $1; nnode[$2] = $3 }
> 	END  { for (x in file)
>diff --git a/po/Makefile b/po/Makefile
>index 82408f69db..8f1e73e089 100644
>--- a/po/Makefile
>+++ b/po/Makefile
>@@ -57,13 +57,13 @@ libc.pot: pot.header libc.pot.files
> 	    -e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \
> 	    -e "s/CHARSET/UTF-8/" \
> 	    $< > $@.new
>-	egrep -v '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
>+	grep -E -v '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
> 	cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \
> 			   --add-comments=TRANS --flag=error:3:c-format \
> 			   --flag=f_print:2:c-format \
> 			   --sort-by-file --omit-header -E -n -d - \
> 			   -f $(objdir)/tmp-libc.pot-files >> po/$@.new
>-	egrep '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
>+	grep -E '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
> 	cd ..; $(XGETTEXT) --add-comments=TRANS --language=Shell \
> 			   --sort-by-file --omit-header -E -n -o po/$@.new -j \
> 			   -f $(objdir)/tmp-libc.pot-files po/$@.new
>diff --git a/scripts/check-c++-types.sh b/scripts/check-c++-types.sh
>index b80d141f1a..852973daca 100755
>--- a/scripts/check-c++-types.sh
>+++ b/scripts/check-c++-types.sh
>@@ -32,9 +32,9 @@
> # #include <sys/stat.h>
> # EOF
> # gcc -D_GNU_SOURCE -E - |
>-# egrep '^typedef.*;$' |
>+# grep -E '^typedef.*;$' |
> # sed 's/^typedef[[:space:]]*//;s/\([[:space:]]\{1,\}__attribute__.*\);/;/;s/.*[[:space:]]\([*]\|\)\(.*\);/\2/' |
>-# egrep -v '^_' |
>+# grep -E -v '^_' |
> # LC_ALL=C sort -u
> #
> data=$1
>diff --git a/scripts/documented.sh b/scripts/documented.sh
>index 047a1d3493..7d1ffd4a92 100644
>--- a/scripts/documented.sh
>+++ b/scripts/documented.sh
>@@ -3,7 +3,7 @@ bindir=$1
>
> VERSION=1.0
>
>-egrep -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
>+grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
> sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
> sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
> sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
>@@ -15,7 +15,7 @@ sed -e '/^alloca$/d' |
> sort -u > DOCUMENTED
>
> nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
>-egrep " [TW] ([[:alpha:]]|_[[:alpha:]])" |
>+grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
> sed 's/\(@.*\)//' |
> cut -b 12- |
> sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' |
>diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure
>index b40ce60461..5b0237e521 100644
>--- a/sysdeps/arm/configure
>+++ b/sysdeps/arm/configure
>@@ -209,7 +209,7 @@ ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
> LC_ALL=C $READELF -dr conftest.so > conftest.dr 2>&5 &&
> {
>   cat conftest.dr 1>&5
>-  fgrep 'TEXTREL
>+  grep -F 'TEXTREL
> R_ARM_NONE' conftest.dr > /dev/null || libc_cv_arm_pcrel_movw=yes
> }
> rm -f conftest*
>diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac
>index da078ce012..5172e30bbe 100644
>--- a/sysdeps/arm/configure.ac
>+++ b/sysdeps/arm/configure.ac
>@@ -53,7 +53,7 @@ ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
> LC_ALL=C $READELF -dr conftest.so > conftest.dr 2>&AS_MESSAGE_LOG_FD &&
> {
>   cat conftest.dr 1>&AS_MESSAGE_LOG_FD
>-  fgrep 'TEXTREL
>+  grep -F 'TEXTREL
> R_ARM_NONE' conftest.dr > /dev/null || libc_cv_arm_pcrel_movw=yes
> }
> rm -f conftest*])
>diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure
>index af50c5bfab..cbb66097bd 100644
>--- a/sysdeps/i386/configure
>+++ b/sysdeps/i386/configure
>@@ -28,7 +28,7 @@ int _start (void) { int a, b, c; __sync_val_compare_and_swap (&a, b, c); return
> EOF
> if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
> 		     -O0 -nostdlib -nostartfiles
>-		     -S conftest.c -o - | fgrep "__sync_val_compare_and_swap"
>+		     -S conftest.c -o - | grep -F "__sync_val_compare_and_swap"
> 		     1>&5'
>   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
>   (eval $ac_try) 2>&5
>diff --git a/sysdeps/i386/tst-ld-sse-use.sh b/sysdeps/i386/tst-ld-sse-use.sh
>index 90000b7fac..1d2c87f4e7 100755
>--- a/sysdeps/i386/tst-ld-sse-use.sh
>+++ b/sysdeps/i386/tst-ld-sse-use.sh
>@@ -35,7 +35,7 @@ rtldobjs="$rtldobjs $(ar t ${objpfx}rtld-libc.a)"
>
> # OBJECT symbols can be ignored.
> $READELF -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
>-egrep " OBJECT  *GLOBAL " |
>+grep -E " OBJECT  *GLOBAL " |
> awk '{if ($7 != "ABS") print $8 }' |
> sort -u > "$tmp"
> declare -a objects
>@@ -59,8 +59,8 @@ while test -n "$objs"; do
> 	done
>         for o in $rtldobjs; do
> 	  ro=$(echo "$objpfx"../*/"$o")
>-	  if $NM -g --defined-only "$ro" | egrep -qs " $s\$"; then
>-	    if ! (echo "$tocheck $objs" | fgrep -qs "$o"); then
>+	  if $NM -g --defined-only "$ro" | grep -E -qs " $s\$"; then
>+	    if ! (echo "$tocheck $objs" | grep -F -qs "$o"); then
> 	      echo "$o needed for $s"
> 	      objs="$objs $o"
> 	    fi
>diff --git a/sysdeps/ia64/fpu/import_check b/sysdeps/ia64/fpu/import_check
>index 21176f578d..4303d2ff37 100644
>--- a/sysdeps/ia64/fpu/import_check
>+++ b/sysdeps/ia64/fpu/import_check
>@@ -41,14 +41,14 @@ check_file() {
>     file=$1
>     size=$(readelf -S $file | \
> 	(sz=0; while read line; do
>-		if echo $line | fgrep -q " .rodata"; then
>+		if echo $line | grep -F -q " .rodata"; then
> 		    read sz rest
> 		    break
> 		fi
> 	    done;
> 	    printf "%d" 0x$sz))
>
>-    summands=$(readelf -s $file | fgrep " OBJECT " | tr -s ' ' |
>+    summands=$(readelf -s $file | grep -F " OBJECT " | tr -s ' ' |
> 	cut -f4 -d' ' | sed 's,$,+,')0
>     sum=$(($summands))
>     if [ $sum != $size ]; then
>-- 
>2.35.1
>
  
Paul Eggert June 5, 2022, 5:18 p.m. UTC | #2
On 6/4/22 22:42, Fangrui Song via Libc-alpha wrote:
> In the Linux kernel folks tend to use `treewide:`.
> I see that there is exactly one glibc commit using `treewide:`.

For this patch I suggest using the prefix "grep:". Though it's not a big 
deal; on the rare occasions I make a treewide commit I typically don't 
use a prefix.

Other than the commit-line prefix, the patch looks fine. Thanks.

In the next GNU grep release we also plan to warn about REs like '\a' 
that use undocumented escape sequences, where POSIX explicitly says the 
interpretation is undefined, the GNU documentation is silent, and GNU 
grep historically has been flaky because the glibc regex code is flaky 
(unfortunately nobody these days has much time to fix glibc regex). I 
expect and hope that these new warnings don't affect glibc builds, 
though I haven't checked for this.
  
Fangrui Song June 5, 2022, 5:57 p.m. UTC | #3
On 2022-06-05, Paul Eggert wrote:
>On 6/4/22 22:42, Fangrui Song via Libc-alpha wrote:
>>In the Linux kernel folks tend to use `treewide:`.
>>I see that there is exactly one glibc commit using `treewide:`.
>
>For this patch I suggest using the prefix "grep:". Though it's not a 
>big deal; on the rare occasions I make a treewide commit I typically 
>don't use a prefix.

OK.

>Other than the commit-line prefix, the patch looks fine. Thanks.

BTW: Do the modified files need the one-line description
"Copyright The GNU Toolchain Authors." from
https://sourceware.org/glibc/wiki/Contribution%20checklist#Update_copyright_information ?

>In the next GNU grep release we also plan to warn about REs like '\a' 
>that use undocumented escape sequences, where POSIX explicitly says 
>the interpretation is undefined, the GNU documentation is silent, and 
>GNU grep historically has been flaky because the glibc regex code is 
>flaky (unfortunately nobody these days has much time to fix glibc 
>regex). I expect and hope that these new warnings don't affect glibc 
>builds, though I haven't checked for this.

Aha.
  
Paul Eggert June 5, 2022, 7:04 p.m. UTC | #4
On 6/5/22 10:57, Fangrui Song wrote:
> BTW: Do the modified files need the one-line description
> "Copyright The GNU Toolchain Authors." from
> https://sourceware.org/glibc/wiki/Contribution%20checklist#Update_copyright_information 
> ?

Not for this change, no, as the change is trivial and you're 
contributing by assigning copyright not via DCO.

I see that the wording in that URL was confusing: "those changes do not 
have their copyright assigned to the FSF (contribution via DCO)" sounded 
like it was talking about changes *not* contributed via DCO, whereas the 
wording was intended to refer to changes that *are* covered by DCO. I 
changed the wording as follows to try to clarify things.

https://sourceware.org/glibc/wiki/Contribution%20checklist?action=diff&rev1=121&rev2=122
  

Patch

diff --git a/Makefile b/Makefile
index a9722a161c..179dd478ff 100644
--- a/Makefile
+++ b/Makefile
@@ -565,10 +565,10 @@  $(objpfx)check-wrapper-headers.out: scripts/check-wrapper-headers.py $(headers)
 endif # $(headers)
 
 define summarize-tests
-@egrep -v '^(PASS|XFAIL):' $(objpfx)$1 || true
+@grep -E -v '^(PASS|XFAIL):' $(objpfx)$1 || true
 @echo "Summary of test results$2:"
 @sed 's/:.*//' < $(objpfx)$1 | sort | uniq -c
-@! egrep -q -v '^(X?PASS|XFAIL|UNSUPPORTED):' $(objpfx)$1
+@! grep -E -q -v '^(X?PASS|XFAIL|UNSUPPORTED):' $(objpfx)$1
 endef
 
 # The intention here is to do ONE install of our build into the
diff --git a/aclocal.m4 b/aclocal.m4
index 3e0bcdd12b..3b4df4a371 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -280,7 +280,7 @@  int _start (void) { $2 return 0; }
 EOF
 if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
 		     $3 -nostdlib -nostartfiles
-		     -S conftest.c -o - | fgrep "$1"
+		     -S conftest.c -o - | grep -F "$1"
 		     1>&AS_MESSAGE_LOG_FD])
 then
   libc_compiler_builtin_inlined=yes
diff --git a/elf/Makefile b/elf/Makefile
index bfc9179fc5..2b646a91e0 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1315,7 +1315,7 @@  $(objpfx)librtld.mk: $(objpfx)librtld.map Makefile
 	while read lib file; do \
 	  case $$lib in \
 	  libc_pic.a) \
-	    LC_ALL=C fgrep -l /$$file \
+	    LC_ALL=C grep -F -l /$$file \
 		  $(common-objpfx)stamp.os $(common-objpfx)*/stamp.os | \
 	    LC_ALL=C \
 	    sed 's@^$(common-objpfx)\([^/]*\)/stamp\.os$$@rtld-\1'" +=$$file@"\
diff --git a/elf/tst-rtld-list-tunables.sh b/elf/tst-rtld-list-tunables.sh
index 70875bb5ab..52a3464c32 100755
--- a/elf/tst-rtld-list-tunables.sh
+++ b/elf/tst-rtld-list-tunables.sh
@@ -41,5 +41,5 @@  ${test_wrapper_env} \
 ${run_program_env} \
 $rtld --list-tunables \
 | sort -u \
-| egrep "(rtld|malloc)" \
+| grep -E "(rtld|malloc)" \
 | sed -e "s/0xf\+/0x[f]+/"
diff --git a/iconvdata/big5.c b/iconvdata/big5.c
index 68c88cd78f..f469d41530 100644
--- a/iconvdata/big5.c
+++ b/iconvdata/big5.c
@@ -27,7 +27,7 @@ 
 /* Table for Big5 to UCS conversion. This is generated from the BIG5
    charmap, using the following command:
 
-	egrep "/x../x.." BIG5 | egrep -v "^% " | sed 's/%IRREVERSIBLE%//' | \
+	grep -E "/x../x.." BIG5 | grep -E -v "^% " | sed 's/%IRREVERSIBLE%//' | \
 	perl segA.pl > segA
 
    where segA.pl script is:
@@ -3600,45 +3600,45 @@  static const char from_ucs4_tab1[256][2] =
 
 ---------------------------------------------------------------------
 rm -f segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U02" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U02" | sort | \
 	perl segB2.pl 2 0x02C7 0x02D9 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U03" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U03" | sort | \
 	perl segB2.pl 3 0x0391 0x03C9 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U20[1-3]" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U20[1-3]" | sort | \
 	perl segB2.pl 4 0x2013 0x203B >> segB2
 
 ( Separate U20AC, U2103, U2105, U2109 )
 
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U216" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U216" | sort | \
 	perl segB2.pl 5 0x2160 0x2169 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U219" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U219" | sort | \
 	perl segB2.pl 6 0x2190 0x2199 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U22[1-6]" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U22[1-6]" | sort | \
 	perl segB2.pl 7 0x2215 0x2267 >> segB2
 
 ( Separate U2295, U2299, U22A5, U22BF )
 
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U2[56]" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U2[56]" | sort | \
 	perl segB2.pl 8 0x2500 0x2642 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U30" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U30" | sort | \
 	perl segB2.pl 9 0x3000 0x3029 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U31" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U31" | sort | \
 	perl segB2.pl 10 0x3105 0x3129 >> segB2
 
 ( Separate U32A3 )
 
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U33" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U33" | sort | \
 	perl segB2.pl 11 0x338E 0x33D5 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<U[4-9]" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<U[4-9]" | sort | \
 	perl segB2.pl 12 0x4E00 0x9FA4 >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UF[678]" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UF[678]" | sort | \
 	perl segB2.pl 13 0xF6B1 0xF848 >> segB2
 
 ( Separate UFA0C, UFA0D )
 
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UFE" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UFE" | sort | \
 	perl segB2.pl 14 0xFE30 0xFE6B >> segB2
-egrep "/x../x.." BIG5 | egrep -v "^%" | egrep "^<UFF" | sort | \
+grep -E "/x../x.." BIG5 | grep -E -v "^%" | grep -E "^<UFF" | sort | \
 	perl segB2.pl 15 0xFF01 0xFFE5 >> segB2
 ---------------------------------------------------------------------
 
diff --git a/iconvdata/cns11643.c b/iconvdata/cns11643.c
index 8425b449ae..5c41a4ab0a 100644
--- a/iconvdata/cns11643.c
+++ b/iconvdata/cns11643.c
@@ -38,7 +38,7 @@ 
 
    The table can be generated using
 
-   egrep '^0x2' CNS11643.TXT |
+   grep -E '^0x2' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -1979,7 +1979,7 @@  const uint16_t __cns11643l2_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0x3' CNS11643.TXT |
+   grep -E '^0x3' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -3606,7 +3606,7 @@  const uint32_t __cns11643l3_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0x4' CNS11643.TXT |
+   grep -E '^0x4' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -5456,7 +5456,7 @@  const uint32_t __cns11643l4_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0x5' CNS11643.TXT |
+   grep -E '^0x5' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -7635,7 +7635,7 @@  const uint32_t __cns11643l5_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0x6' CNS11643.TXT |
+   grep -E '^0x6' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -9260,7 +9260,7 @@  const uint32_t __cns11643l6_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0x7' CNS11643.TXT |
+   grep -E '^0x7' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -10923,7 +10923,7 @@  const uint32_t __cns11643l7_to_ucs4_tab[] =
 
    The table can be generated using
 
-   egrep '^0xF' CNS11643.TXT |
+   grep -E '^0xF' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -12633,8 +12633,8 @@  const uint32_t __cns11643l15_to_ucs4_tab[] =
    CJK Ideographs in the UCS plane 0: range U+3400..U+9FA5.
    The table can be created using
 
-   egrep '^0x' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x(3[4-9A-F]|[4-9])' | perl tab.pl
+   grep -E '^0x' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x(3[4-9A-F]|[4-9])' | perl tab.pl
 
    where tab.pl is
 
@@ -24796,8 +24796,8 @@  const char __cns11643_from_ucs4p0_tab[][3] =
 /* CJK Ideographs in the UCS plane 2: range U+20000..U+2A6D6.
    The table can be created using
 
-   egrep '^0x' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x2[0-9A]... ' | perl tab.pl
+   grep -E '^0x' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[0-9A]... ' | perl tab.pl
 
    where tab.pl is
 
@@ -39911,8 +39911,8 @@  const char __cns11643_from_ucs4p2_tab[][3] =
 /* CJK Compatibility Ideographs in the UCS plane 2: range U+2F800..U+2FA1D.
    The table can be created using
 
-   egrep '^0x' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x2F... ' | perl tab.pl
+   grep -E '^0x' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x2F... ' | perl tab.pl
 
    where tab.pl is
 
diff --git a/iconvdata/cns11643l1.c b/iconvdata/cns11643l1.c
index 839cc84f72..96bd962ecc 100644
--- a/iconvdata/cns11643l1.c
+++ b/iconvdata/cns11643l1.c
@@ -32,7 +32,7 @@ 
 
    The table can be generated using
 
-   egrep '^0x1' CNS11643.TXT |
+   grep -E '^0x1' CNS11643.TXT |
    awk '{print $1, $2}' | perl tab.pl
 
    where tab.pl is:
@@ -1540,8 +1540,8 @@  const char __cns11643l1_from_ucs4_tab2[][2] =
 
 /* Greek alphabet.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x03' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x03' | perl tab.pl
 
    where tab.pl is
 
@@ -1581,8 +1581,8 @@  const char __cns11643l1_from_ucs4_tab3[][2] =
 
 /* General punctuation.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x20' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x20' | perl tab.pl
 
    where tab.pl is
 
@@ -1619,8 +1619,8 @@  const char __cns11643l1_from_ucs4_tab5[][2] =
 
 /* Mathematical operators.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x22[1-6]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x22[1-6]' | perl tab.pl
 
    where tab.pl is
 
@@ -1650,8 +1650,8 @@  const char __cns11643l1_from_ucs4_tab6[][2] =
 
 /* Graphic pictures for control codes.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x24[0-2]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x24[0-2]' | perl tab.pl
 
    where tab.pl is
 
@@ -1686,8 +1686,8 @@  const char __cns11643l1_from_ucs4_tab7[][2] =
 
 /* Circled and Parenthesized numbers.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x24[67]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x24[67]' | perl tab.pl
 
    where tab.pl is
 
@@ -1718,8 +1718,8 @@  const char __cns11643l1_from_ucs4_tab8[][2] =
 
 /* Circled and Parenthesized numbers.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x2[56]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[56]' | perl tab.pl
 
    where tab.pl is
 
@@ -1763,8 +1763,8 @@  const char __cns11643l1_from_ucs4_tab9[][2] =
 
 /* CJK punctuation and Hangzhou-style numerals.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x30[0-2]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x30[0-2]' | perl tab.pl
 
    where tab.pl is
 
@@ -1798,8 +1798,8 @@  const char __cns11643l1_from_ucs4_tab10[][2] =
 
 /* Squared latin abbreviations.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x33' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x33' | perl tab.pl
 
    where tab.pl is
 
@@ -1827,8 +1827,8 @@  const char __cns11643l1_from_ucs4_tab11[][2] =
 
 /* CJK Ideographs.  The table can be created using
 
-   egrep '^0x1' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0x[4-9]' | perl tab.pl
+   grep -E '^0x1' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x[4-9]' | perl tab.pl
 
    where tab.pl is
 
@@ -3657,8 +3657,8 @@  const char __cns11643l1_from_ucs4_tab12[][2] =
 
 /* Glyphs for vertical variants.  The table can be created using
 
-   egrep '^0x' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0xFE' | perl tab.pl
+   grep -E '^0x' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0xFE' | perl tab.pl
 
    where tab.pl is
 
@@ -3699,8 +3699,8 @@  const char __cns11643l1_from_ucs4_tab13[][2] =
 
 /* Fullwidth ASCII variants.  The table can be created using
 
-   egrep '^0x' CNS11643.TXT |
-   awk '{ print $2, $1 }' | sort | egrep '^0xFF[0-5]' | perl tab.pl
+   grep -E '^0x' CNS11643.TXT |
+   awk '{ print $2, $1 }' | sort | grep -E '^0xFF[0-5]' | perl tab.pl
 
    where tab.pl is
 
diff --git a/iconvdata/gb2312.c b/iconvdata/gb2312.c
index 3bab2268a4..760040a799 100644
--- a/iconvdata/gb2312.c
+++ b/iconvdata/gb2312.c
@@ -20,7 +20,7 @@ 
 
 /* The conversion table to UCS4 has almost no holes.  It can be generated with:
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
    perl tab.pl
 
    where tab.pl is:
@@ -1918,8 +1918,8 @@  const char __gb2312_from_ucs4_tab1[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x03' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x03' | perl tab.pl
 
    where tab.pl is
 
@@ -1959,8 +1959,8 @@  const char __gb2312_from_ucs4_tab2[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x04' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x04' | perl tab.pl
 
    where tab.pl is
 
@@ -2006,8 +2006,8 @@  const char __gb2312_from_ucs4_tab3[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x20' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x20' | perl tab.pl
 
    where tab.pl is
 
@@ -2035,8 +2035,8 @@  const char __gb2312_from_ucs4_tab4[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x2[12]' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x2[12]' | perl tab.pl
 
    where tab.pl is
 
@@ -2076,8 +2076,8 @@  const char __gb2312_from_ucs4_tab5[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x24' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x24' | perl tab.pl
 
    where tab.pl is
 
@@ -2118,8 +2118,8 @@  const char __gb2312_from_ucs4_tab6[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x3[01]' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x3[01]' | perl tab.pl
 
    where tab.pl is
 
@@ -2219,8 +2219,8 @@  const char __gb2312_from_ucs4_tab7[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0x[4-9]' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0x[4-9]' | perl tab.pl
 
    where tab.pl is
 
@@ -4499,8 +4499,8 @@  const char __gb2312_from_ucs4_tab8[][2] =
 
 /* The table can be created using
 
-   egrep '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
-   awk '{ print $2, $1 }' | sort | egrep '^0xFF[0-5]' | perl tab.pl
+   grep -E '^0x' /mnt/cdrom/unix/mappings/eastasia/gb/gb2312.txt |
+   awk '{ print $2, $1 }' | sort | grep -E '^0xFF[0-5]' | perl tab.pl
 
    where tab.pl is
 
diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c
index 97717181f4..53e865e74a 100644
--- a/iconvdata/gbk.c
+++ b/iconvdata/gbk.c
@@ -5543,7 +5543,7 @@  static const uint16_t __gbk_to_ucs[] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x00' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x00' | perl tab.pl
 
    where tab.pl is
 
@@ -5574,7 +5574,7 @@  static const char __gbk_from_ucs4_tab1[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x03' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x03' | perl tab.pl
 
    where tab.pl is
 
@@ -5614,7 +5614,7 @@  static const char __gbk_from_ucs4_tab2[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x04' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x04' | perl tab.pl
 
    where tab.pl is
 
@@ -5660,7 +5660,7 @@  static const char __gbk_from_ucs4_tab3[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x20' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x20' | perl tab.pl
 
    where tab.pl is
 
@@ -5690,7 +5690,7 @@  static const char __gbk_from_ucs4_tab4[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x2[12]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x2[12]' | perl tab.pl
 
    where tab.pl is
 
@@ -5738,7 +5738,7 @@  static const char __gbk_from_ucs4_tab5[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x2[4-6]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x2[4-6]' | perl tab.pl
 
    where tab.pl is
 
@@ -5829,7 +5829,7 @@  static const char __gbk_from_ucs4_tab6[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x3[0-3]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x3[0-3]' | perl tab.pl
 
    where tab.pl is
 
@@ -5943,7 +5943,7 @@  static const char __gbk_from_ucs4_tab7[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0x[4-9]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0x[4-9]' | perl tab.pl
 
    where tab.pl is
 
@@ -12935,7 +12935,7 @@  static const char __gbk_from_ucs4_tab8[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xE[78]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xE[78]' | perl tab.pl
 
    where tab.pl is
 
@@ -12993,7 +12993,7 @@  static const char __gbk_from_ucs4_tab9[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFA[0-2]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFA[0-2]' | perl tab.pl
 
    where tab.pl is
 
@@ -13023,7 +13023,7 @@  static const char __gbk_from_ucs4_tab10[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFE[3-6]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFE[3-6]' | perl tab.pl
 
    where tab.pl is
 
@@ -13065,7 +13065,7 @@  static const char __gbk_from_ucs4_tab11[][2] =
 
 /* The table can be created using
 
-   awk '{ print $2, $1 }' gbk.txt | sort | egrep '^0xFF[0-5]' | perl tab.pl
+   awk '{ print $2, $1 }' gbk.txt | sort | grep -E '^0xFF[0-5]' | perl tab.pl
 
    where tab.pl is
 
diff --git a/iconvdata/jis0208.c b/iconvdata/jis0208.c
index 4bfc68d66c..e2940113df 100644
--- a/iconvdata/jis0208.c
+++ b/iconvdata/jis0208.c
@@ -38,7 +38,7 @@ 
    It's not worth trying to use these gaps.  The table can be generated
    using
 
-   egrep '^0x' < .../eastasia/jis/jis0208.txt |
+   grep -E '^0x' < .../eastasia/jis/jis0208.txt |
    perl tab.pl
 
    with tab.pl containing:
@@ -1800,8 +1800,8 @@  const char __jisx0208_from_ucs4_lat1[JIS0208_LAT1_MAX + 1
 
 /* The following table can be generated using
 
-   egrep '^0x' < .../eastasia/jis/jis0208.txt |
-   awk '{ print $3, $2}' | egrep '^0x0[34]' | sort -u | perl tab.pl
+   grep -E '^0x' < .../eastasia/jis/jis0208.txt |
+   awk '{ print $3, $2}' | grep -E '^0x0[34]' | sort -u | perl tab.pl
 
    where tab.pl contains:
 
@@ -1868,8 +1868,8 @@  const char __jisx0208_from_ucs4_greek[0xc1][2] =
    unpredictable place and size.  Therefore we use a table which maps
    ranges to idexes in a table.  This table ca be generated with:
 
-   egrep '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
-   egrep '^0x[^01]' | sort -u | perl tab.pl
+   grep -E '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
+   grep -E '^0x[^01]' | sort -u | perl tab.pl
 
    where tab.pl is
 
@@ -2610,8 +2610,8 @@  const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[] =
    therefore indexed using UCS with leaving large gaps out.  It can
    be computed with
 
-   egrep '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
-   egrep '^0x[^01]' | sort -u | perl tag.pl
+   grep -E '^0x' < .../eastasia/jis/jis0208.txt | awk '{ print $3, $2}' |
+   grep -E '^0x[^01]' | sort -u | perl tag.pl
 
    where tab.pl is
 
diff --git a/iconvdata/jis0212.c b/iconvdata/jis0212.c
index 5799cd7b60..5ca559a76f 100644
--- a/iconvdata/jis0212.c
+++ b/iconvdata/jis0212.c
@@ -25,7 +25,7 @@ 
    char in a table resulting in an index to a table with the UCS.  The
    following command can be used to generate the table:
 
-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
      .../eastasia/jis/jis0212.txt | perl tab.pl
 
    where tab.pl is
@@ -71,7 +71,7 @@  const struct jisx0212_idx __jisx0212_to_ucs_idx[] =
 /* The table which the UCS values indexed by the table above can be
    generated using the following code:
 
-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
      .../eastasia/jis/jis0212.txt | perl tab.pl
 
    where tab.pl is:
@@ -876,7 +876,7 @@  const uint16_t __jisx0212_to_ucs[] =
    use again a two-step mapping table.  The index table can be computed
    using
 
-   egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
+   grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
      ../eastasia/jis/jis0212.txt | awk '{ print $2, $1 }' | sort -u |
    perl tab.pl
 
@@ -1657,7 +1657,7 @@  const struct jisx0212_idx __jisx0212_from_ucs_idx[] =
 
 /* The values corresponding to the table can be computed using
 
-    egrep '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
+    grep -E '^0x[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
       .../eastasia/jis/jis0212.txt | awk '{ print $2, $1 }' |
     sort -u | perl tab.pl
 
diff --git a/iconvdata/ksc5601.c b/iconvdata/ksc5601.c
index 922ec8b0c5..533f7bca17 100644
--- a/iconvdata/ksc5601.c
+++ b/iconvdata/ksc5601.c
@@ -20,8 +20,8 @@ 
 #include "ksc5601.h"
 
 /*
-egrep  '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
-egrep -v '^0x[4-9AD-F]' | egrep -v '^0x..([4-9].|A0)' | \
+grep -E '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E -v '^0x[4-9AD-F]' | grep -E -v '^0x..([4-9].|A0)' | \
 perl tab21.pl > ksc_hangul1.tb
 
 ----------
@@ -350,7 +350,7 @@  const uint16_t __ksc5601_hangul_to_ucs[KSC5601_HANGUL]=
     and UCS-4. It's used to convert symbols in  EUC-KR, ISO-2022-KR,
     Johab, UHC to UCS-4.
 
-egrep '^0xA[1-C]' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E '^0xA[1-C]' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
 grep -v '# HANGUL SYLLABLE' | perl tab11.pl  > ksc_sym1.tb
 
    $n=0;
@@ -624,7 +624,7 @@  const uint16_t __ksc5601_sym_to_ucs[] =
 
  Mapping table from UCS4 to symbols defined in KS C 5601-1987.
 
-egrep '^0xA[1-C]' /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E '^0xA[1-C]' /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
 grep -v '# HANGUL SYLLABLE' | awk '{print $2, $1}' | sort -u |
 perl tab12.pl > ksc_sym2.tb
 
@@ -981,7 +981,7 @@  const struct map __ksc5601_sym_from_ucs[KSC5601_SYMBOL] =
 };
 
 /*
-egrep  '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
 perl tab21.pl > ksc_hanja1.tb
 
 
@@ -1613,7 +1613,7 @@  const uint16_t __ksc5601_hanja_to_ucs[KSC5601_HANJA]=
 };
 
 /*
-egrep  '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E '^0x.*# <CJK>' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
 awk '{print $2,$1}' | sort -u | perl tab12.pl > ksc_hanja2.tb
 
    $n=0;
diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
index 5aea18b314..e4f143813a 100644
--- a/iconvdata/sjis.c
+++ b/iconvdata/sjis.c
@@ -26,7 +26,7 @@ 
    from the Unicode CD (also available on their FTP server) using
    the command
 
-	egrep '^0x8[01234][[:xdigit:]][[:xdigit:]]' \
+	grep -E '^0x8[01234][[:xdigit:]][[:xdigit:]]' \
 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
 
    where sjis.pl contains:
@@ -185,7 +185,7 @@  static const uint16_t cjk_block1[703] =
    from the Unicode CD (also available on their FTP server) using
    the command
 
-	egrep '^0x8[89][[:xdigit:]][[:xdigit:]]' \
+	grep -E '^0x8[89][[:xdigit:]][[:xdigit:]]' \
 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
 
    where sjis.pl contains:
@@ -235,7 +235,7 @@  static const uint16_t cjk_block2[94] =
    from the Unicode CD (also available on their FTP server) using
    the command
 
-	egrep '^0x(8[9a-fA-F]|9[[:xdigit:]])[[:xdigit:]][[:xdigit:]]' \
+	grep -E '^0x(8[9a-fA-F]|9[[:xdigit:]])[[:xdigit:]][[:xdigit:]]' \
 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
 
    where sjis.pl contains:
@@ -1333,7 +1333,7 @@  static const uint16_t cjk_block3[4413] =
    from the Unicode CD (also available on their FTP server) using
    the command
 
-	egrep '^0x[eE][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
+	grep -E '^0x[eE][[:xdigit:]][[:xdigit:]][[:xdigit:]]' \
 	  /mnt/cdrom/unix/mappings/eastasia/jis/shiftjis.txt | perl ~/sjis.pl
 
    where sjis.pl contains:
@@ -1856,7 +1856,7 @@  static const uint16_t cjk_block4[2021] =
 /* The following table can be generated using
 
    awk '/^0x/ { print $2, $1; }' < .../eastasia/jis/shiftjis.txt |
-   egrep "^0x00[[:xdigit:]][[:xdigit:]]" |
+   grep -E "^0x00[[:xdigit:]][[:xdigit:]]" |
    sort -u | perl tab.pl
 
    where tab.pl is
@@ -1938,7 +1938,7 @@  static const char from_ucs4_lat1[0xf8][2] =
 /* The following table can be generated using
 
    awk '/^0x/ { print $2, $1; }' < .../eastasia/jis/shiftjis.txt |
-   egrep "^0x0[34][[:xdigit:]][[:xdigit:]]" |
+   grep -E "^0x0[34][[:xdigit:]][[:xdigit:]]" |
    sort -u | perl tab.pl
 
    where tab.pl is
@@ -2007,7 +2007,7 @@  static const char from_ucs4_greek[193][2] =
    The following table can be generated using
 
    awk '/^0x/ { print $2, $1; }' < ...eastasia/jis/shiftjis.txt |
-   egrep "^0x[2-9][[:xdigit:]][[:xdigit:]][[:xdigit:]]" |
+   grep -E "^0x[2-9][[:xdigit:]][[:xdigit:]][[:xdigit:]]" |
    sort -u | perl tab.pl
 
    where tab.pl is
diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
index 3277695735..9b222d358d 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -22,7 +22,7 @@ 
 
 
 /*
-egrep \
+grep -E \
 '^0x([89][0-9A-F]..|A0..|[AB][0-9A-F][4-9].|[AB][0-9A-F]A0|C[0-6][4-9].|C[0-6]A0)' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | perl tab.pl
 
 ------tab.pl
@@ -1150,7 +1150,7 @@  static const uint32_t uhc_extra_to_ucs[8822]=
 };
 
 /*
-egrep  '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
+grep -E '# HANGUL SYLL' < /cdrom/unix/mappings/eastasia/ksc/ksc5601.txt | \
  awk '{print $2, $1}' | sort -u | perl tab.pl
 
 -----tab.pl
diff --git a/io/ftwtest-sh b/io/ftwtest-sh
index db82d4871b..174a3ab6a5 100644
--- a/io/ftwtest-sh
+++ b/io/ftwtest-sh
@@ -268,7 +268,7 @@  $testprogram --skip-siblings=file@1b $tmpdir |
 regexp=`echo $(ls -U $tmp/$ftwtest/foo/lvl1b \
 	       | sed -n '/file@1b$/,${/file[23]@1b$/p;}') | sed 's, ,|,'`
 catcmd=cat
-[ -n "$regexp" ] && catcmd="egrep -v $regexp"
+[ -n "$regexp" ] && catcmd="grep -E -v $regexp"
 
 $catcmd <<EOF | diff -u $testout - || exit 1
 base = "$tmp/", file = "$ftwtest", flag = FTW_D, level = 0
diff --git a/manual/libc-texinfo.sh b/manual/libc-texinfo.sh
index aea27f9e94..1cf35012c6 100644
--- a/manual/libc-texinfo.sh
+++ b/manual/libc-texinfo.sh
@@ -22,7 +22,7 @@  build_menu () {
 }
 
 collect_nodes () {
-  egrep '^(@c )?@node.*Top' "$@" /dev/null | cut -d, -f-2 |
+  grep -E '^(@c )?@node.*Top' "$@" /dev/null | cut -d, -f-2 |
   sed 's/@c //; s/, /:/; s/:@node /:/; s/ /_/g; s/:/ /g' |
   $AWK '{ file[$2] = $1; nnode[$2] = $3 }
 	END  { for (x in file)
diff --git a/po/Makefile b/po/Makefile
index 82408f69db..8f1e73e089 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -57,13 +57,13 @@  libc.pot: pot.header libc.pot.files
 	    -e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \
 	    -e "s/CHARSET/UTF-8/" \
 	    $< > $@.new
-	egrep -v '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
+	grep -E -v '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
 	cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \
 			   --add-comments=TRANS --flag=error:3:c-format \
 			   --flag=f_print:2:c-format \
 			   --sort-by-file --omit-header -E -n -d - \
 			   -f $(objdir)/tmp-libc.pot-files >> po/$@.new
-	egrep '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
+	grep -E '\.ksh$$' $(word 2,$^) > $(objdir)/tmp-libc.pot-files
 	cd ..; $(XGETTEXT) --add-comments=TRANS --language=Shell \
 			   --sort-by-file --omit-header -E -n -o po/$@.new -j \
 			   -f $(objdir)/tmp-libc.pot-files po/$@.new
diff --git a/scripts/check-c++-types.sh b/scripts/check-c++-types.sh
index b80d141f1a..852973daca 100755
--- a/scripts/check-c++-types.sh
+++ b/scripts/check-c++-types.sh
@@ -32,9 +32,9 @@ 
 # #include <sys/stat.h>
 # EOF
 # gcc -D_GNU_SOURCE -E - |
-# egrep '^typedef.*;$' |
+# grep -E '^typedef.*;$' |
 # sed 's/^typedef[[:space:]]*//;s/\([[:space:]]\{1,\}__attribute__.*\);/;/;s/.*[[:space:]]\([*]\|\)\(.*\);/\2/' |
-# egrep -v '^_' |
+# grep -E -v '^_' |
 # LC_ALL=C sort -u
 #
 data=$1
diff --git a/scripts/documented.sh b/scripts/documented.sh
index 047a1d3493..7d1ffd4a92 100644
--- a/scripts/documented.sh
+++ b/scripts/documented.sh
@@ -3,7 +3,7 @@  bindir=$1
 
 VERSION=1.0
 
-egrep -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
+grep -E -h @deftypefu?nx? *.texi ../linuxthreads/*.texi |
 sed -e 's/@deftypefunx*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e 's/@deftypefn {[^}]*function}*[[:space:]]*\({[^{]*}\|[[:alnum:]_]*\)[[:space:]]*\([[:alnum:]_]*\).*/\2/' -e '/^@/d' |
 sed -e '/^obstack_/d' -e '/^\([lf]\|\)stat\(\|64\)$/d' -e '/^mknod$/d' |
 sed -e '/^signbit$/d' -e '/^sigsetjmp$/d' |
@@ -15,7 +15,7 @@  sed -e '/^alloca$/d' |
 sort -u > DOCUMENTED
 
 nm --extern --define $bindir/libc.so $bindir/math/libm.so $bindir/rt/librt.so $bindir/linuxthreads/libpthread.so $bindir/dlfcn/libdl.so $bindir/crypt/libcrypt.so $bindir/login/libutil.so |
-egrep " [TW] ([[:alpha:]]|_[[:alpha:]])" |
+grep -E " [TW] ([[:alpha:]]|_[[:alpha:]])" |
 sed 's/\(@.*\)//' |
 cut -b 12- |
 sed -e '/^_IO/d' -e '/^_dl/d' -e '/^_pthread/d' -e '/^_obstack/d' |
diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure
index b40ce60461..5b0237e521 100644
--- a/sysdeps/arm/configure
+++ b/sysdeps/arm/configure
@@ -209,7 +209,7 @@  ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
 LC_ALL=C $READELF -dr conftest.so > conftest.dr 2>&5 &&
 {
   cat conftest.dr 1>&5
-  fgrep 'TEXTREL
+  grep -F 'TEXTREL
 R_ARM_NONE' conftest.dr > /dev/null || libc_cv_arm_pcrel_movw=yes
 }
 rm -f conftest*
diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac
index da078ce012..5172e30bbe 100644
--- a/sysdeps/arm/configure.ac
+++ b/sysdeps/arm/configure.ac
@@ -53,7 +53,7 @@  ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
 LC_ALL=C $READELF -dr conftest.so > conftest.dr 2>&AS_MESSAGE_LOG_FD &&
 {
   cat conftest.dr 1>&AS_MESSAGE_LOG_FD
-  fgrep 'TEXTREL
+  grep -F 'TEXTREL
 R_ARM_NONE' conftest.dr > /dev/null || libc_cv_arm_pcrel_movw=yes
 }
 rm -f conftest*])
diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure
index af50c5bfab..cbb66097bd 100644
--- a/sysdeps/i386/configure
+++ b/sysdeps/i386/configure
@@ -28,7 +28,7 @@  int _start (void) { int a, b, c; __sync_val_compare_and_swap (&a, b, c); return
 EOF
 if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
 		     -O0 -nostdlib -nostartfiles
-		     -S conftest.c -o - | fgrep "__sync_val_compare_and_swap"
+		     -S conftest.c -o - | grep -F "__sync_val_compare_and_swap"
 		     1>&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
diff --git a/sysdeps/i386/tst-ld-sse-use.sh b/sysdeps/i386/tst-ld-sse-use.sh
index 90000b7fac..1d2c87f4e7 100755
--- a/sysdeps/i386/tst-ld-sse-use.sh
+++ b/sysdeps/i386/tst-ld-sse-use.sh
@@ -35,7 +35,7 @@  rtldobjs="$rtldobjs $(ar t ${objpfx}rtld-libc.a)"
 
 # OBJECT symbols can be ignored.
 $READELF -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
-egrep " OBJECT  *GLOBAL " |
+grep -E " OBJECT  *GLOBAL " |
 awk '{if ($7 != "ABS") print $8 }' |
 sort -u > "$tmp"
 declare -a objects
@@ -59,8 +59,8 @@  while test -n "$objs"; do
 	done
         for o in $rtldobjs; do
 	  ro=$(echo "$objpfx"../*/"$o")
-	  if $NM -g --defined-only "$ro" | egrep -qs " $s\$"; then
-	    if ! (echo "$tocheck $objs" | fgrep -qs "$o"); then
+	  if $NM -g --defined-only "$ro" | grep -E -qs " $s\$"; then
+	    if ! (echo "$tocheck $objs" | grep -F -qs "$o"); then
 	      echo "$o needed for $s"
 	      objs="$objs $o"
 	    fi
diff --git a/sysdeps/ia64/fpu/import_check b/sysdeps/ia64/fpu/import_check
index 21176f578d..4303d2ff37 100644
--- a/sysdeps/ia64/fpu/import_check
+++ b/sysdeps/ia64/fpu/import_check
@@ -41,14 +41,14 @@  check_file() {
     file=$1
     size=$(readelf -S $file | \
 	(sz=0; while read line; do
-		if echo $line | fgrep -q " .rodata"; then
+		if echo $line | grep -F -q " .rodata"; then
 		    read sz rest
 		    break
 		fi
 	    done;
 	    printf "%d" 0x$sz))
 
-    summands=$(readelf -s $file | fgrep " OBJECT " | tr -s ' ' |
+    summands=$(readelf -s $file | grep -F " OBJECT " | tr -s ' ' |
 	cut -f4 -d' ' | sed 's,$,+,')0
     sum=$(($summands))
     if [ $sum != $size ]; then