Grep expression between double quotes

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Grep expression between double quotes
# 1  
Old 12-17-2009
Grep expression between double quotes

I need a quick expression to be able to pull out all the data in a text file that looks like "http:// some random url etc" So it should grab any string that begins with "http:// and ends with " There are other double quotes in the file but I only want the ones that start with "http:// and the closing quotes for each incident of that.

---------- Post updated at 04:00 PM ---------- Previous update was at 03:46 PM ----------

I should mention the double quotes are actually in the file, I wasn't adding them myself.
# 2  
Old 12-17-2009
How about:
Code:
grep -o '"http://[^"]*"' infile

# 3  
Old 12-18-2009
Yes, perfect. Thank you!

---------- Post updated 12-18-09 at 08:32 AM ---------- Previous update was 12-17-09 at 07:30 PM ----------

Could someone please explain why it worked? I thought [^"] would mean to grab a string that begins with a double quote. I see also the dbl quotes enclosed in single quotes. I would love to hear a rundown of how it all worked though.
# 4  
Old 12-18-2009
Quote:
Originally Posted by glev2005
Could someone please explain why it worked? I thought [^"] would mean to grab a string that begins with a double quote. I see also the dbl quotes enclosed in single quotes. I would love to hear a rundown of how it all worked though.
[^"] means "any character other than a quote", just like [^q9] means "any character other than q or 9". [^"]* means "zero or more characters that aren't quotes", and so [^"]*" means "any number of non-quotes followed by a quote".
# 5  
Old 12-18-2009
You may want to google 'regular expresssion'. IF you want to become proficient in unix, regex. as it is called is a very important tool. It has spilled over into Windows programming in the past few years as well.
# 6  
Old 12-20-2009
You may use egrep or grep as well and result here will be the same.
Code:
egrep ""http//.*"" 
or
egrep "\"http//.*\"" 
or
egrep '"http//.*"'

SmilieSmilieSmilieSmilieSmilie
# 7  
Old 12-20-2009
Quote:
Originally Posted by aaiaz
You may use egrep or grep as well and result here will be the same.
Code:
egrep ""http//.*"" 
or
egrep "\"http//.*\"" 
or
egrep '"http//.*"'

SmilieSmilieSmilieSmilieSmilie
This is not correct. You may want to search for "greedy matching", and look up the -o option. Also your quoting alternatives will prohibit the regex from being properly evaluated.

Last edited by Scrutinizer; 12-20-2009 at 04:22 PM..
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