02-10-2017
The /pat1/,/pat2/ or \|pat1|,\|pat2|
is a range match, from the line where pat1 matches up to the line where pat2 matches. The p command prints the range.
Because your pat1 and pat2 end with a $ there must not be a trailing character.
Open the file with vi (not vim). Is there a trailing ^M or space character at the end of the line?
Tip: a trailing space character becomes visible in vi after a :set list (the line ends are shown as $). Switch back to the normal view mode with :set nolist
Last edited by MadeInGermany; 02-10-2017 at 08:01 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi all,
Is anyone able to help with the following query?
I have an input file with several lines of words, e.g.
"hellolaylahello"
"hellohellohellolayla"
I want to search for the exact string "hello" in each line and display:
2 "hellolaylahello"
3 "hellohellohellolayla"
I... (11 Replies)
Discussion started by: dr_sabz
11 Replies
2. Shell Programming and Scripting
Hi
I have a string of the form XY_X1998.10.500.
I want to check in a script that the middle part is always 10. How to achieve this?
e.g the input can be XY_X1998.20.500 OR XY_X1998.50.500
OR XY_X1998.10.500.
I have to print Yes everytime the middle value is 10 and NO when the middle... (2 Replies)
Discussion started by: skyineyes
2 Replies
3. Shell Programming and Scripting
Dear Friends,
Anybody knows how to match exact lines only in multilinear.
Input file:
apple
orange
orange
apple
apple
orange
Desired output:
fruit
orange
apple
fruit
i used the command (1 Reply)
Discussion started by: vasanth.vadalur
1 Replies
4. Shell Programming and Scripting
I am trying to match a pattern exactly in a shell script. I have tried two methods
awk '/\<mpath${CURR_MP}\>/{print $1 $2}' multipath
perl -ne '/\bmpath${CURR_MP}\b/ and print' /var/tmp/multipath
Both these methods require that I use the escape character. I am guessing that is why... (8 Replies)
Discussion started by: bash_in_my_head
8 Replies
5. Shell Programming and Scripting
Hi All,
I'm writing unix script, it should find exact matching in search string. Looks simple but when i started i'm stuck to find the exact match character string.
The unix script reads the records from DB Table. The table will have values something likes these
Feed : A Feed File name :... (3 Replies)
Discussion started by: luckybalaji
3 Replies
6. Shell Programming and Scripting
QUESTION1:
How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed.
Contents of car.txt
CAR1_KEY0
CAR1_KEY1
CAR2_KEY0
CAR2_KEY1
CAR1_KEY10
CURRENT COMMAND LINE: WHERE VARIABLE CAR_NUMBER=1 AND KEY_NUMBER=1
grep... (1 Reply)
Discussion started by: thibodc
1 Replies
7. Shell Programming and Scripting
I would like replace all the rows in a file if a row has an exact match to number say 21 in a tab delimited file. I want to delete the row only if it has 21 any of the rows but it should not delecte the row that has 542178 or 563421.
I tried this
sed '/\<21\>/d' ./inputfile > output.txt
... (7 Replies)
Discussion started by: Kanja
7 Replies
8. Shell Programming and Scripting
Hi All,
I am breaking my head in trying to get a command that will exactly match my given string. I have searched net and found few of the options -
grep -F $string file
grep -x $string file
grep "^${string}$" file
awk '/"${string}"/ {print $0}' file
strangely nothing seems to... (3 Replies)
Discussion started by: dips_ag
3 Replies
9. Shell Programming and Scripting
I just want to match "binutils1_test" only, and print the match line only
lyang001@lyang001-OptiPlex-9010:/tmp$ cat file
zbinutils1_test
bbinutils1_test
binutils1_test
w-binutils1_test
lyang001@lyang001-OptiPlex-9010:/tmp$ cat file |grep -w 'binutils1_test'
... (7 Replies)
Discussion started by: yanglei_fage
7 Replies
10. Shell Programming and Scripting
I have a file change.sed
more change.sed
I fire the below command inorder to replace "190.169.11.15" with "10.4.112.240" in proxy.logsed -f change.sed proxy.log proxy.log has the below entry
more proxy.log
The command replaces both 190.169.11.15 & 190.169.11.155 as below:
I am expecting... (17 Replies)
Discussion started by: mohtashims
17 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)