Hi.
I don't use HPUX much, but I keep a login for comparisons.
Here is a script that was run on an HP. I downloaded a version of grep that was written in perl. I created a 3-line data file. The first and last lines are quite short, adding up to 11 characters (with newlines), and the middle line is several thousands of characters long. That second line contains a "9", which will be the string for which we will search:
#!/usr/bin/env bash
# @(#) s1 Demonstrate perl version of grep.
# Found at:
# http://cpansearch.perl.org/src/CWEST/ppt-0.14/src/grep/tcgrep
echo
set +o nounset
LC_ALL=C ; LANG=C ; export LC_ALL LANG
echo "Environment: LC_ALL = $LC_ALL, LANG = $LANG"
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version "=o" $(_eat $0 $1) grep ./tcgrep
set -o nounset
echo
FILE=${1-data1}
echo " Data file, first and last line, counts $FILE:"
head -1 $FILE
tail -1 $FILE
wc $FILE
echo
echo " Results standard grep:"
time grep 9 $FILE |
wc
echo
echo " Results perl grep:"
time ./tcgrep 9 $FILE |
wc
exit 0
producing:
$ ./s1
Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: HP-UX, B.11.00, 9000/712
Distribution : GenericSysName [HP Release B.11.00] (see /etc/issue)
GNU bash 2.05b.0
grep - ( /usr/bin/grep Nov 7 1997 )
./tcgrep - (local: ./tcgrep Jul 29 17:19 )
Data file, first and last line, counts data1:
First
Last
3 3 6905 data1
Results standard grep:
1 1 6894
real 0m0.091s
user 0m0.060s
sys 0m0.030s
Results perl grep:
1 1 6894
real 0m1.349s
user 0m1.190s
sys 0m0.140s
There are several conclusions to be drawn here. The system grep has returned more than 2048 characters. Both the system and the perl grep extracted the same line, and the character count is the same. I agree that perl can handle very long lines, but it uses more resources.
This is evidence that HPUX grep (for this combination of versions) did what was expected.
The URL for the perl version of grep points to CPAN, a large repository of perl code. The options in tcgrep are generally not the same as all system versions of grep. However, it ran correctly directly "out of the box".
Best wishes ... cheers, drl