06-26-2008
Quote:
Originally Posted by
matt.d
\s is shorthand for any whitespace (tab, space, newline). And, because there's no qualifier telling it how many to match, it just means the first whitespace in the line.
Because the ^ (carat) is inside the brackets, it negates the shorthand.
So we are saying, "Match any character that isn't a whitespace."
Close but no cigar; as the man page says "all other special characters, including '\', lose their special significance within a bracket expression".
So, it should match all lines except those that contain a "\" or an "s". This seems to be the correct interpretation and when the "^" is not used you do indeed get only lines with a "s" or a "\" in them.
The (virtual) cigar goes to whomever can say why using the negation doesn't work to give the opposite set of lines.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi I've been searching google and have not found what egrep -c means. Does anyone know where I can get a cheat sheet or what that -c means?
thanks,
Linda (2 Replies)
Discussion started by: leelm
2 Replies
2. Shell Programming and Scripting
Hi,
I don't understand what is the correct way of writing:
egrep -l '{$min,$max} $pattern' $filename
I tryed to search on google how to wtrite {$min, $max}, but I don't have success (7 Replies)
Discussion started by: DNAx86
7 Replies
3. Shell Programming and Scripting
Hi there,
Im having some issues using egrep, I have a text file containing server logs:
the user imputs 2 arguments, which are error checked and made into $searchMonth $searchYear respectivley.
I then do the grep command:
egrep /$searchMonth/ $file | egrep /$searchYear: | wc -l
... (1 Reply)
Discussion started by: Darklight
1 Replies
4. Shell Programming and Scripting
Hi there,
How many multiple values can be in egrep for seraching? i am giving more values but i am getting the error like Unknown error. My input in extended to 2nd line. my command is like below.
egrep -i -h... (2 Replies)
Discussion started by: arund_01
2 Replies
5. UNIX for Dummies Questions & Answers
HI,
I want to grep the contents of fileb from filea.
filbeb
5x4xxx371x31a43
4x40x037103a049
3x4x003710a0659
4x4x0x371a50912
filbea
5x4xxx371x31a43 3266000225
4x4003266000277 3266000277
4x400326x000499 3266000499
4x4003266000676 3266000676
4x4x0x371a50912 3266000777... (4 Replies)
Discussion started by: krao
4 Replies
6. UNIX for Dummies Questions & Answers
Hi Guys,
we have a shell script which basically query the Database which retrieves huge data and use the data with "egrep" .
Now there is some data which contains characters like "abc)" and the same is used like below :
"egrep (.+\|GDPRAB16\|GDPR/11702 96 abc)\|$ temp.txt"
now while... (7 Replies)
Discussion started by: sagarjani
7 Replies
7. UNIX for Dummies Questions & Answers
HI,
I have two files filea, fileeb
filea
z283110z67
xx65686377
xx654681zz
xx652836xx
xx653881zz
xx65480z11
xx654z5466
xx65510000
xx65670000
xx656z0000
xx656z1822
fileb (3 Replies)
Discussion started by: krao
3 Replies
8. Shell Programming and Scripting
i am new to bash or scripting period and had a question about how I could use the egrep command (or if there should be another command to use) to accomplish the following goal. Need to look through the ndm files labeled as S20090709.999 and if I cannot find a specific date then search the archived... (5 Replies)
Discussion started by: freddie999
5 Replies
9. Shell Programming and Scripting
Hi,
I need to search for a exact word in a file and I have a list of allowable values in a list file. I search something like this using egrep -f option:
>egrep -f list.txt data.txt
New
New York
NewYork
>
list.txt file has the allowable value for search and this file can be edited to... (5 Replies)
Discussion started by: calredd
5 Replies
10. Shell Programming and Scripting
Hi
I am trying to run CMD that combining EGREP and PERL in multiple files
cat *07:00.22-12-13.txt | egrep" NAME| perl -ne 'print if /^sid9/ .. /^!/' "
I need the see the NAME and the text from sid9 to !
how can I use the EGERP in parallel to the PERL ?
This is one file
Qqq... (2 Replies)
Discussion started by: sharong
2 Replies
GREP(1) General Commands Manual GREP(1)
NAME
grep, egrep, fgrep - search a file for a pattern
SYNOPSIS
grep [ option ] ... expression [ file ] ...
egrep [ option ] ... [ expression ] [ file ] ...
fgrep [ option ] ... [ strings ] [ file ]
DESCRIPTION
Commands of the grep family search the input files (standard input default) for lines matching a pattern. Normally, each line found is
copied to the standard output. Grep patterns are limited regular expressions in the style of ex(1); it uses a compact nondeterministic
algorithm. Egrep patterns are full regular expressions; it uses a fast deterministic algorithm that sometimes needs exponential space.
Fgrep patterns are fixed strings; it is fast and compact. The following options are recognized.
-v All lines but those matching are printed.
-x (Exact) only lines matched in their entirety are printed (fgrep only).
-c Only a count of matching lines is printed.
-l The names of files with matching lines are listed (once) separated by newlines.
-n Each line is preceded by its relative line number in the file.
-b Each line is preceded by the block number on which it was found. This is sometimes useful in locating disk block numbers by con-
text.
-i The case of letters is ignored in making comparisons -- that is, upper and lower case are considered identical. This applies to
grep and fgrep only.
-s Silent mode. Nothing is printed (except error messages). This is useful for checking the error status.
-w The expression is searched for as a word (as if surrounded by `<' and `>', see ex(1).) (grep only)
-e expression
Same as a simple expression argument, but useful when the expression begins with a -.
-f file
The regular expression (egrep) or string list (fgrep) is taken from the file.
In all cases the file name is shown if there is more than one input file. Care should be taken when using the characters $ * [ ^ | ( ) and
in the expression as they are also meaningful to the Shell. It is safest to enclose the entire expression argument in single quotes ' '.
Fgrep searches for lines that contain one of the (newline-separated) strings.
Egrep accepts extended regular expressions. In the following description `character' excludes newline:
A followed by a single character other than newline matches that character.
The character ^ matches the beginning of a line.
The character $ matches the end of a line.
A . (period) matches any character.
A single character not otherwise endowed with special meaning matches that character.
A string enclosed in brackets [] matches any single character from the string. Ranges of ASCII character codes may be abbreviated
as in `a-z0-9'. A ] may occur only as the first character of the string. A literal - must be placed where it can't be mistaken as
a range indicator.
A regular expression followed by an * (asterisk) matches a sequence of 0 or more matches of the regular expression. A regular
expression followed by a + (plus) matches a sequence of 1 or more matches of the regular expression. A regular expression followed
by a ? (question mark) matches a sequence of 0 or 1 matches of the regular expression.
Two regular expressions concatenated match a match of the first followed by a match of the second.
Two regular expressions separated by | or newline match either a match for the first or a match for the second.
A regular expression enclosed in parentheses matches a match for the regular expression.
The order of precedence of operators at the same parenthesis level is [] then *+? then concatenation then | and newline.
Ideally there should be only one grep, but we don't know a single algorithm that spans a wide enough range of space-time tradeoffs.
SEE ALSO
ex(1), sed(1), sh(1)
DIAGNOSTICS
Exit status is 0 if any matches are found, 1 if none, 2 for syntax errors or inaccessible files.
BUGS
Lines are limited to 256 characters; longer lines are truncated.
4th Berkeley Distribution April 29, 1985 GREP(1)