06-29-2018
Going mad on an egrep command (Reg Expressions)
Dear community,
I am trying for several hours now to create an egrep command to grep the number of lines containing a specific text from a text-file but seem to have an error somewhere.
The Textfile contains several thousand lines and has the expression "Lastname" in several lines. Problem is, that there is also expressions like "xLastname" or "abcLastname" in there which I DON'T want to grab.
So the definition of the RegExpression should look like this
EITHER there is no text at all in the line before "Lastname" appears
OR there is Text in the line BUT then a SPACE has to be between the random text and the expression "Lastname"
I tried with ((.+\ )?|(^.))Lastname and ((.+\ )?|(^.*))Lastname and ((.+\ )?|[^.])Lastname and ((.+\ )?|[^.*])Lastname but it always results in the egrep command finding expressions like "abcLastname".
Where is my mistake? The first part (.+\ ) ("If there is text, there HAS to be a SPACE afterwards") seems to work fine but the "OR there is no text at all" does not seem to work.
Wasn't there a special character that I can use to simply check if whatever comes after it is the FIRST expression/character in the line? I cannot find that information online unfortunately.
Thanks to all of you in advance for your help
Best Regards
Donzo
Last edited by Donzo; 06-29-2018 at 02:03 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi there,
I'm investigating migrating a system currently running Scos osr5 to Linux (eg RH 7.2) but there are a lot of in house scripts, some of which are probably using "Sco specific" constructs etc. One I have come across is as follows,
if ????? ]
then ....etc.etc
fi
The regular... (2 Replies)
Discussion started by: pcs7088
2 Replies
2. UNIX for Dummies Questions & Answers
hi frnds,
i need all ur help guys..
I am facing problem when i give script < file name> command
whenever i give this command,i get an error message indicating
"Openpty failed.
Terminated"
:confused:
can u help me out...
with regds,
Deep (7 Replies)
Discussion started by: deep
7 Replies
3. UNIX for Dummies Questions & Answers
Hi frnds,
i need ur help reg getdents command which is used to read the directory entries. I need to know the exact usage of the command and any sample code reg the usage of getdents command
-------------
deep :confused: (1 Reply)
Discussion started by: deep
1 Replies
4. Solaris
Hi,
Can anyone explain me what is RSS time in the prstat output.
In the below example 93M is total process size(correct me if am wrong ) what abt 58M?
1693 root 93M 58M cpu1 0 10 4:11:02 0.8% java/35 (2 Replies)
Discussion started by: rogerben
2 Replies
5. Solaris
Hi,
Am trying to send mail from solaris host to my mailbox, but while executing mailx command am getting the follow error.Is this syntax corect?
#mailx -s "subject" <myid>
The flags you gave are used only when sending mail. (1 Reply)
Discussion started by: rogerben
1 Replies
6. Shell Programming and Scripting
Hi All,
I am using egrep command to search one pattern. Following is the command i am using
egrep -i "ACL*" filename
but its also giving me the records which do not contain ACL.
any help would be appreciated.
Regards,
Sam (3 Replies)
Discussion started by: sam25
3 Replies
7. Shell Programming and Scripting
Hi,
I would like to grep for a string within a tag, can someone provide some assistance in how to do it? So I would like to use the grep command to find a string like:
<tag>sometext<tag>
because the sometext can be any number of characters or an type of number or lettering, what expression... (1 Reply)
Discussion started by: cyberfrog
1 Replies
8. Shell Programming and Scripting
Hi all,
is there anyone good at bash who will help me?
I need to use syntax ${string/pattern/replacement}
The problematic part where I am stuck is:
#!bin/bash
text="A cat is on a mat."
exp="cat"
newexp="SOMECODEcatSOMECODE"
newtext=${${text}/${exp}/${newexp}}
== > ERROR "wrong... (4 Replies)
Discussion started by: JohnnyM77
4 Replies
9. Shell Programming and Scripting
Hi,
Im using the below command to search a file for multiple expressions if the 4th expression doesnt exist the command simply lists what it can find and ignores what it cant. Is there any way to get the command to output an error or a message if it cant find the 4th expression to a file?
... (16 Replies)
Discussion started by: 02JayJay02
16 Replies
10. Shell Programming and Scripting
Hi,
i have some problems with regular expressions in a awk search pattern.
what i want to do:
i want to calculate the mean-value in the time from 00:00 to 06:00
how my data looks like:
....
04/01/13-01:40 670992 54802 80711 116460 156177
04/01/13-01:50 703725 60150 85498 ... (3 Replies)
Discussion started by: IMPe
3 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)