using sed or grep to find exact match of text


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers using sed or grep to find exact match of text
# 1  
Old 10-22-2008
using sed or grep to find exact match of text

Hi,

Can anyone help me with the text editing I need here. I have a file that contains the following lines for example: (line numbers are for illustration only)

1 Hello world fantasy.
2 Hello worldfuntastic.
3 Hello world wonderful.

I would like to get all those lines of text that contains the word "world" without anything after it. Meaning, I would like to have lines 1 and 3, line 2 should not be included because it contains "worldfuntastic", no space between.

1 Hello world fantasy.
3 Hello world wonderful

The problem is, there are some lines that use TAB to separate words like line 3. When I use grep "world " <filename>, this will get all lines of text with the word "world" and space after it but not those with TAB, i.e. the results would only be:
1 Hello world fantasy

line 3 is not included because "world" and "wonderful" are separated by TAB. Any suggestions, please?
# 2  
Old 10-22-2008
Code:
egrep "[[:space:]]world[[:space:]]" infile

The [[:space:]] works with any kind and number of concatenated spaces, wether it's blanks or tabs etc.
# 3  
Old 10-22-2008
Error

I tried with egrep [[:space:]]....but i think it doesn't work:

I just tried with this grep " world " infile....(include the spaces between the before and after the word "world".
# 4  
Old 10-22-2008
Quote:
Originally Posted by risk_sly
Hi,

Can anyone help me with the text editing I need here. I have a file that contains the following lines for example: (line numbers are for illustration only)

1 Hello world fantasy.
2 Hello worldfuntastic.
3 Hello world wonderful.

I would like to get all those lines of text that contains the word "world" without anything after it. Meaning, I would like to have lines 1 and 3, line 2 should not be included because it contains "worldfuntastic", no space between.

1 Hello world fantasy.
3 Hello world wonderful

The problem is, there are some lines that use TAB to separate words like line 3. When I use grep "world " <filename>, this will get all lines of text with the word "world" and space after it but not those with TAB, i.e. the results would only be:
1 Hello world fantasy

line 3 is not included because "world" and "wonderful" are separated by TAB. Any suggestions, please?

if you want to grab whole words, the basic logic is to go through each word, and check against what you want to find using equality "==" operator
Code:
awk '{
 for ( i=1;i<=NF;i++){
  if ( $(i) == "world"){
   print $0
  } 
 }
}
' file

# 5  
Old 10-22-2008
what about grep -w :

Code:
     -w       Searches for the expression as a word  as  if  surrounded by \< and \>.

Code:
#  grep -w world infile
1 Hello world fantasy.
3 Hello world   wonderful.

# 6  
Old 10-23-2008
thanks for the reply guys.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep for an exact match in a file

I am currently having some issues while trying to grep for a exact string inside a file. I have tried doing this from command line and things work fine i.e. when no match is found, return code=1 but when its done as part of my script it returns 0 for the same command - I dont know if there is an... (6 Replies)
Discussion started by: Ads89
6 Replies

2. Shell Programming and Scripting

Grep exact match

Hello! I have 2 files named tacs.tmp and tacDB.txt tacs.tmp looks like this 0 10235647 102700 106800 107200 1105700 tacDB.txt looks like this 100100,Mitsubishi,G410,Handheld,,0,0,0 100200,Siemens,A53,Handheld,,0,0,0 100300,Sony Ericsson,TBD (AAB-1880030-BV),Handheld,,0,0,0... (2 Replies)
Discussion started by: Cludgie
2 Replies

3. Shell Programming and Scripting

Grep or sed - printing line only with exact match

Hello. In my script, some command return : q | kernel-default | package | 3.19.0-1.1.g8a7d5f9 | x86_64 | openSUSE-13.2-Kernel_stable_standard | kernel-default | package | 3.19.0-1.1.g8a7d5f9 | i586 | openSUSE-13.2-Kernel_stable_standard | kernel-default ... (3 Replies)
Discussion started by: jcdole
3 Replies

4. Shell Programming and Scripting

Searching for exact match using grep

I am searching for an exact match on a value read from another file to lookup an email address in another file. The file being checked is called "contacts" and it has Act #, email address, and contact person. 1693;abc1693@yahoo.comt;Tommy D 6423;abc6423@yahoo.comt;Jim Doran... (2 Replies)
Discussion started by: ziggy6
2 Replies

5. Shell Programming and Scripting

Grep two words with exact match

HI Input : Counters Counter Int Ints Counters Counters Ints Ints I want to grep Counter|Int Output : Counter (1 Reply)
Discussion started by: pareshkp
1 Replies

6. Shell Programming and Scripting

grep and sed exact match questions

This post was previously mistaken for homework, but is actually a small piece of what I working on at work. Please answer if you can. 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... (2 Replies)
Discussion started by: thibodc
2 Replies

7. UNIX for Dummies Questions & Answers

grep and sed exact match questions

This was mistaken as homework in a different forum, but is not. These are questions that are close to what I am trying to do at work. 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... (1 Reply)
Discussion started by: thibodc
1 Replies

8. 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

9. Solaris

grep exact match

Hi This time I'm trying to grep for an exact match e.g cat.dog.horse.cow.bird.pig horse.dog.pig pig.cat.horse.dog horse dog dog pig.dog pig.dog.bird how do I grep for dog only so that a wc -l would result 2 in above case. Thanks in advance ---------- Post updated at 06:33 AM... (4 Replies)
Discussion started by: rob171171
4 Replies

10. UNIX for Advanced & Expert Users

Exact Match thru grep ?????

hey..... i do have text where the contents are like as follows, FILE_TYPE_NUM_01=FILE_TYPE=01|FILE_DESC=Periodic|FILE_SCHDL_TYPE=Daily|FILE_SCHDL=|FILE_SCHDL_TIME=9:00am|RESULTS=B FILE_TYPE_NUM_02=FILE_TYPE=02|FILE_DESC=NCTO|FILE_SCHDL_TYPE=Daily|FILE_SCHDL=|FILE_SCHDL_TIME=9:00am|RESULTS=M... (2 Replies)
Discussion started by: manas_ranjan
2 Replies
Login or Register to Ask a Question