grep question


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers grep question
# 1  
Old 04-26-2002
grep question

Hi

I have a string which can be in either the format

$string="abcd.efgh"

or

$string="abcd..efgh"

or

$string="abcd...efgh"

what I want to do is pick out any string which has more than 1 '.'
ie I want to pick out abcd..efgh and abcd...efgh but NOT abcd.efgh

I have been using the following statement

echo $string | grep '..'

This statement picks out everything INCLUDING abcd.efgh
I can't understand why this happens. Can anyone help me to solve this problem?

Many thanks!
HelenSmilie
# 2  
Old 04-26-2002
Grep, by default will either print the given line that matches or with '-v' prevent the printing an entire line if the criteria matches.


My guess is that you are trying to keep the string with 1 . in the middle and remove any extra ..s that are in other occurences of the string. Is that right??? OR to remove the words that contain .. or ... entirely from the file.

CASE #1
***********************
Use sed -e 's/D..E/D.E/' -e 's/D...E/D.E/' file.orig > file.new


Here is from the man page. You can do multiple changes at once similar to grep -e option

sed -e 's/abc/xyz/' -e 's/lmn/rst/' file1 >file1.out


CASE #2
***********************
If you are trying to remove "pick" out the occurences that have .. or ... in the middle. you need to give

Use sed -e 's/D..E//' -e 's/D...E//' file.orig > file.new.

This will remove the offending words from the file.


Last edited by Kelam_Magnus; 04-26-2002 at 01:50 PM..
# 3  
Old 04-26-2002
I don't need to use sed but I think I've managed to work out how to do it:

I believe the answer is

echo $string | grep '/./.'

It seems to work anyway. If anyone knows of a better way, please let me know.

Thanks
Helen Smilie
# 4  
Old 04-28-2002
The dot is a special character when using grep....

grep '\.\.' works (not sure how you got grep '/./.' to work though?

Basically the . is a special character - so to make it be taken literally you put in the backslash (and you do need it for both dots!).



Smilie
# 5  
Old 04-29-2002
Yes, I did use '\.\.' - my head was so fuzzy after all that thinking that I typed the post in wrong! Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Grep Question

My grep returns a row of data like this: 75=20130130;60=074338;61=985;511=55473883;452=115439;62=196;267=1; Is there a way for the grep to only return 60="something" and 511="something" ? Thanks in advance. (10 Replies)
Discussion started by: Carl2013
10 Replies

2. UNIX for Dummies Questions & Answers

Question on grep

Hello all, I'm trying to grep the string "scott" from all files whose names are like srvr*.log and that were created "Nov 15"...I'm trying the following command but throws an error message...seems like the syntax is incorrect.. grep scott < ls -l srvr*.log|grep "Nov 15" Thanks for your... (9 Replies)
Discussion started by: luft
9 Replies

3. Shell Programming and Scripting

Question about grep

is there anyway i can ask grep to only get the first line? as in the top command line line 1 <-- just grep this line line 2 line 3 ---------- Post updated at 04:24 PM ---------- Previous update was at 04:19 PM ---------- nvm.. found out that i can do it with |head (12 Replies)
Discussion started by: Nick1097
12 Replies

4. Shell Programming and Scripting

Question about grep

can anyone tell me what the \/$ means? from grep \/$ (8 Replies)
Discussion started by: Nick1097
8 Replies

5. Shell Programming and Scripting

grep question please

i have files with "DOMAINSOLVER ACMS" with any number of spaces in between the two words on its own line and i can find it with the following: grep -c "DOMAINSOLVER* ACMS" $FILENAMEbut i need to exclude any lines matching: "$DOMAINSOLVER". i've tried a variety of quoting and escaping with no luck.... (4 Replies)
Discussion started by: crimso
4 Replies

6. Shell Programming and Scripting

grep question

Hello, Is there a way in grep to remember patterns? For eg: int a,b,c,d,a; If a variable is declared twice, like in the previous example, I should be able to print only those lines. Is there a way to print only the lines where the variable name occurs more than once, using grep... (1 Reply)
Discussion started by: prasanna1157
1 Replies

7. UNIX for Dummies Questions & Answers

grep question

Instead of using the following command #dmesg | grep -v sendmail | grep -v xntpd How can I use just one grep -v and give both arguments. Please suggest thanks (4 Replies)
Discussion started by: Tirmazi
4 Replies

8. Shell Programming and Scripting

grep question

hello people, All my servers have 4 mounts with this norme. For example, if my hostname is siroe. df -h | grep `hostname` /dev/dsk/c1t3d0s6 404G 399G 800M 100% /siroe3 /dev/dsk/c1t2d0s6 404G 399G 800M 100% /siroe2 /dev/md/dsk/d6 20G 812M 19G ... (3 Replies)
Discussion started by: melanie_pfefer
3 Replies

9. UNIX for Dummies Questions & Answers

Grep Question

Hello Everybody, I have files; yyyymmdd.log which the data look like this; "Txid=9426043&MsgTxt=Thankyou&UserId=john&Password=jh2501" "Txid=9426150&MsgTxt=Thankyou&UserId=john&Password=jh2501" . . . "Txid=9426200&MsgTxt=Thankyou&UserId=john&Password=jh2501" Question 1: How to... (3 Replies)
Discussion started by: nazri76
3 Replies

10. UNIX for Dummies Questions & Answers

grep question

what is the format for grep if I want to search from the current directory and through all its subdirectories?:) (3 Replies)
Discussion started by: pkappaz
3 Replies
Login or Register to Ask a Question