Search for exact string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search for exact string
# 1  
Old 12-04-2009
Search for exact string

Hi All,


I need to search in a csv file as mentioend in the Appendix A for a exact word lets "TEST".


But using teh below command iam getting TEST1234, TEST12 and otehr entries as well.

the problem is i check this condition to check to add a record to a table by making sure it does not exits. But since it reurns TEST1234, i am not able to ad the record in Table.

is_there=$(awk -F ',' '{print$1}' test.dat | grep "TEST" )

Can you please a command preferable awk , which could search for the exact patterm.


Thanks a lot in anticpation.


Appendix A:

"TEST1234", " test desc"
"TEST12", " test desc"
"TABC123", " test desc"
"TBC", " test desc"
"12345", " test desc"
# 2  
Old 12-04-2009
hello rahman,
how you doing?
you can use ERE aka extended regular expressions.
So I use "egrep" instead of "grep"
so your one-liner becomes like this
is_there=$(awk -F ',' '{print$1}' test.dat | egrep "\bTEST\b" ) #where \b is the non word chararter in Extended Regex Context.
Other thing that I would like to mention that using awk and grep together is not a good practice. the latter is supposed to disappear when the former makes a presence.
Regards Smilie
# 3  
Old 12-04-2009
Code:
nawk ' /^"TEST", / ' test.dat

# 4  
Old 12-04-2009
Thanks for the feedback.

I tried the mentioend commands it does not work .

In the meain while i tried

abc_var= echo "${abc_var}"| sed -e s/\"/\\\\\"/g

is_there=cat test.dat |awk 'BEGIN {FS=",";i=0} {if ( $1 == "${abc_var}" ) {i=i+1}} END'


But this prints the cat output on console . test.dat is huge so it does not look good.

Any suggestions will be welcome.

Thanks in anticipation.
# 5  
Old 12-04-2009
You could also use
Code:
find /path/to/file -iname "*.dat" | xargs grep "TEST"

to find the exact pattern. Just an idea
# 6  
Old 12-04-2009
Code:
more foo
"TEST1234", " test desc"
"TEST12", " test desc"
"TABC123", " test desc"
"TBC", " test desc"
"12345", " test desc"
root@foo:/tmp/js# cat foo |egrep -w "TEST12"
"TEST12", " test desc"

# 7  
Old 12-05-2009
Quote:
Originally Posted by gaurav1086
Other thing that I would like to mention that using awk and grep together is not a good practice.

The use of awk and grep together is recommended by the authors of the language in their book, The AWK Programming Language:

"If you have to search a big file to isolate a small amount of data, use grep or egrep for the searching and awk for the processing."
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

2. Shell Programming and Scripting

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

3. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

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

5. Shell Programming and Scripting

How to use SED or AWK to search and replace an exact string

I have a file DS1 DDS DS I want to replace only "DS" to "DSmail.blah.com" in a lot of files. I tried sed 's/DS/DSmail.blah.com' but it changes all the lines . thanks in advance (2 Replies)
Discussion started by: gubbu
2 Replies

6. Shell Programming and Scripting

search and replace exact string

Hello Everyone, Im trying to run a search and replace of exact strings and the strings that im using variables that are passed through an array in a while loop. Here is a snip of my code: USEROLD=`cat oldusers` USERNEW=`cat newusers` USEROLDARRAY=( $USEROLD ) USERNEWARRAY=( $USERNEW )... (4 Replies)
Discussion started by: skizim
4 Replies

7. UNIX for Advanced & Expert Users

Search for an exact string in a Terminal

Is there hopefully a way to search for an exact string in Man Pages? I know if I want to search for anything containing -c I can just do this. /-c How would I search for "-c"? I want only "-c" to show up. So I tried this. /"-c" It took me literally and looked for the quotes also. (13 Replies)
Discussion started by: cokedude
13 Replies

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

9. UNIX for Dummies Questions & Answers

grep exact string/ avoid substring search

Hi All, I have 2 programs running by the following names: a_testloop.sh testloop.sh I read these programs names from a file and store each of them into a variable called $program. On the completion of the above programs i should send an email. When i use grep with ps to see if any of... (3 Replies)
Discussion started by: albertashish
3 Replies

10. Shell Programming and Scripting

How do I search a File for a string exact match

Hi, Can you help please. I have the following comand: if ]; then l_valid_string="Y" fi The problem I am trying to solve is that my l_string = ABC and my file contains ABC ABC_EFG I only want back the value ABC exact match. (3 Replies)
Discussion started by: CAGIRL
3 Replies
Login or Register to Ask a Question