Grep expression between double quotes

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Grep expression between double quotes
# 8  
Old 12-22-2009
This one works perfectly i think
grep -o '"http://.*"' input_file
can anyone give a failing case?
# 9  
Old 12-22-2009
No that will only work if there is one address per line and if there are no further "-characters on that line. You may want to search for "greedy matching".
# 10  
Old 12-22-2009
Give more explanation, and some examples for good response....
# 11  
Old 12-22-2009
Sure:
Code:
$ echo '"http://a.b.c" blablabla "http://c.d.e"' |grep -o '"http://.*"'
"http://a.b.c" blablabla "http://c.d.e"

$ echo '"http://a.b.c" blablabla "http://c.d.e"' |grep -o '"http://[^"]*"'
"http://a.b.c"
"http://c.d.e"

$ echo '"http://a.b.c" blablabla ""' |grep -o '"http://.*"'
"http://a.b.c" blablabla ""

$ echo '"http://a.b.c" blablabla ""' |grep -o '"http://[^"]*"'
"http://a.b.c"

If you do not limit greedy matching grep will try to find the longest match possible, hence the use of [^"] instead of .

Last edited by Scrutinizer; 12-22-2009 at 12:47 PM..
# 12  
Old 12-23-2009
Quote:
Originally Posted by Scrutinizer
Sure:
Code:
$ echo '"http://a.b.c" blablabla "http://c.d.e"' |grep -o '"http://.*"'
"http://a.b.c" blablabla "http://c.d.e"

$ echo '"http://a.b.c" blablabla "http://c.d.e"' |grep -o '"http://[^"]*"'
"http://a.b.c"
"http://c.d.e"

$ echo '"http://a.b.c" blablabla ""' |grep -o '"http://.*"'
"http://a.b.c" blablabla ""

$ echo '"http://a.b.c" blablabla ""' |grep -o '"http://[^"]*"'
"http://a.b.c"

If you do not limit greedy matching grep will try to find the longest match possible, hence the use of [^"] instead of .
Scrutinizer you are wrong because see below:-
Iam using SunOS server2 5.10 Generic_118833-36 sun4u sparc SUNW,Netra-210


Code:
bash-3.00$ echo '"http://abc" blablabla "http://cvd"' | grep '"http://.*"'
o/p:- "http://abc" blablabla "http://cvd"

and when using the 2nd way:-

bash-3.00$ echo '"http://abc" blablabla "http://cvd"' | grep '"http://[^"]*"'

o/p:- "http://abc" blablabla "http://cvd"

both ways are acting greedy.
# 13  
Old 12-23-2009
Aaiaz, that is a peculiar conclusion given that I posted my output above that proved my point.

Besides: you left out the -o option! Without it you always print the entire line.
# 14  
Old 12-24-2009
-o option is not supported in grep command in my OS "SUN Solaries".
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace Double quotes within double quotes in a column with space while loading a CSV file

Hi All, I'm unable to load the data using sql loader where there are double quotes within the double quotes As these are optionally enclosed by double quotes. Sample Data : "221100",138.00,"D","0019/1477","44012075","49938","49938/15043000","Television - 22" Refurbished - Airwave","Supply... (6 Replies)
Discussion started by: mlavanya
6 Replies

2. Shell Programming and Scripting

Replace double quotes with a single quote within a double quoted string

Hi Froum. I have tried in vain to find a solution for this problem - I'm trying to replace any double quotes within a quoted string with a single quote, leaving everything else as is. I have the following data: Before: ... (32 Replies)
Discussion started by: pchang
32 Replies

3. Shell Programming and Scripting

Issue with Single Quotes and Double Quotes for prompt PS1

Hi, Trying to change the prompt. I have the following code. export PS1=' <${USER}@`hostname -s`>$ ' The hostname is not displayed <abc@`hostname -s`>$ uname -a AIX xyz 1 6 00F736154C00 <adcwl4h@`hostname -s`>$ If I use double quotes, then the hostname is printed properly but... (3 Replies)
Discussion started by: bobbygsk
3 Replies

4. Shell Programming and Scripting

Replace double double quotes using AWK/SED

Hi, I have data as "01/22/97-"aaaaaaaaaaaaaaaaa""aaa""aabbbbbbbbcccccc""zbcd""dddddddddeeeeeeeeefffffff" I want to remove only the Consequitive double quotes and not the one which occurs single. My O/P must be ... (2 Replies)
Discussion started by: Bhuvaneswari
2 Replies

5. UNIX for Dummies Questions & Answers

how to use grep: finding a string with double quotes and multiple digits

I have a file with a lot of lines (a lot!) that contain 10 digits between double quotes. ie "1726937489". The digits are random throughout, but always contain ten digits. I can not for the life of me, (via scouring the internet and grep how-to manuals) figure out how to find this when I search.... (3 Replies)
Discussion started by: titusbass
3 Replies

6. UNIX for Dummies Questions & Answers

grep single quotes or double quotes

Unix superusers, I am new to unix but would like to learn more about grep. I am very familiar with regular expressions as i have used them for searching text files in windows based text editors. Since I am not very familiar with Unix, I dont understand when one should use GREP with the... (2 Replies)
Discussion started by: george_vandelet
2 Replies

7. Shell Programming and Scripting

Double Quotes with sh -c

Hi, I am using the following command to create a log file. echo "`date` Starting the workflow" >> MYLOG_`date '+%d%m%Y'`.log My application (Informatica) takes the above command and issues the following to the UNIX server. sh -c "echo "`date` Starting the workflow" >> MYLOG_`date... (1 Reply)
Discussion started by: sysdata
1 Replies

8. Shell Programming and Scripting

Single quotes and double quotes

Hi guys, I have a sed line in double quotes which works fine, but I want it to be in single quotes here is the sed line sed "/abc_def/s/\'.*\'/\'\${abc_def}\'/" can some one give the equivalent to the above script in single quotes Thanks a ton (5 Replies)
Discussion started by: sol_nov
5 Replies

9. Shell Programming and Scripting

Double quotes or single quotes when using ssh?

I'm not very familiar with the ssh command. When I tried to set a variable and then echo its value on a remote machine via ssh, I found a problem. For example, $ ITSME=itsme $ ssh xxx.xxxx.xxx.xxx "ITSME=itsyou; echo $ITSME" itsme $ ssh xxx.xxxx.xxx.xxx 'ITSME=itsyou; echo $ITSME' itsyou $... (3 Replies)
Discussion started by: password636
3 Replies

10. UNIX for Dummies Questions & Answers

grep exclude/find single and double quotes

Hello, I'm trying to use grep or egrep to exclude a whole range of characters but how do I exclude both a single and a double quote. It might be easier to say how do I use grep to find both single and double quotes. grep ' ' " ' file grep detects the first single quote within my... (4 Replies)
Discussion started by: Lindy_so
4 Replies
Login or Register to Ask a Question