Match exact String with sed command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Match exact String with sed command
# 8  
Old 02-10-2017
There is no problem, the sed in post#1 works i.e. returns the first section from the given data.txt!
Maybe it is in WinDOS\r format?
# 9  
Old 02-10-2017
DB

Quote:
Originally Posted by Corona688
Show your actual input, please. Attach it if necessary.
The problem i dont get any output is becoz if there is any newline between the start string and end string in data.txt your suggestion will return not give desired result as expected.

Somehow we can disregard the newlines between the search strings ?

---------- Post updated at 06:26 PM ---------- Previous update was at 06:21 PM ----------

Quote:
Originally Posted by MadeInGermany
There is no problem, the sed in post#1 works i.e. returns the first section from the given data.txt!
Maybe it is in WinDOS\r format?
Please consider newlines between the search strings.

I dont know what is and how to confirm if i have WinDOS\r format.

Last edited by mohtashims; 02-10-2017 at 07:47 PM..
# 10  
Old 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..
# 11  
Old 02-10-2017
Quote:
Originally Posted by MadeInGermany
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
I am pasting everything here so you can try the same and see it failing. By the way the issue was the format of data.txt

Code:
sed -n "\|Start_of_DISK_info:$lines$|,\|End_of_DISK_info:$lines$|p" data.txt
Output:
Start_of_DISK_info:/u

Disk: /u
CURRENT=81
Disk Growth Weekly=
Disk Growth Monthly=
End_of_DISK_info: /u        ----> there is a space between : and /u causing the problem.
Start_of_DISK_info:/u/tmp

Disk: /u/tmp
CURRENT=1
Disk Growth Weekly=
Disk Growth Monthly=
End_of_DISK_info:/u/tmp

And now ....

Code:
cat -ev data.txt
$
Start_of_DISK_info:/u$
$
Disk: /u$
CURRENT=81$
Disk Growth Weekly=$
Disk Growth Monthly=$
End_of_DISK_info: /u$
Start_of_DISK_info:/u/tmp$
$
Disk: /u/tmp$
CURRENT=1$
Disk Growth Weekly=$
Disk Growth Monthly=$
End_of_DISK_info:/u/tmp$

Thank you for all the help.

Last edited by mohtashims; 02-10-2017 at 08:19 PM..
# 12  
Old 02-11-2017
Allow the spaces with
Code:
sed -n "\|Start_of_DISK_info: *$lines$|,\|End_of_DISK_info: *$lines$|p" data.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with sed command does not replace exact string matched

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

2. Shell Programming and Scripting

Help match the exact string

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

3. Shell Programming and Scripting

Get the exact match of the string!

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

4. Shell Programming and Scripting

Exact match using sed

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

5. Shell Programming and Scripting

QUESTION1: grep only exact string. QUESTION2: find and replace only exact value with sed

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

6. Shell Programming and Scripting

Finding exact match string

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

7. Shell Programming and Scripting

exact string match ; search and print match

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

8. Shell Programming and Scripting

sed to match only exact string only in all occurences

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

9. Shell Programming and Scripting

Searching for exact match in a string ??

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

10. UNIX for Dummies Questions & Answers

exact string match in a word

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
Login or Register to Ask a Question