Scripting / one liner help

Patton Echols p.echols at comcast.net
Wed Aug 10 23:58:46 UTC 2011


On 08/10/2011 02:52 PM, Hal Burgiss wrote:
>
> On Wed, Aug 10, 2011 at 3:00 PM, Johnny Rosenberg 
> <gurus.knugum at gmail.com <mailto:gurus.knugum at gmail.com>> wrote:
>
>     2011/8/10 Hal Burgiss <hal at burgiss.net <mailto:hal at burgiss.net>>:
>     >
>     > See if this gets close to extracting the image names ...
>     > grep SRC *html | sed -r 's/SRC="([^"]+)"/\1/ig' | whatever_script.sh
>
>     I didn't create this thread, but can you please explain that sed
>     statement? I don't get it… (I'm not a beginner with regular
>     expressions but I'm definitely not an expert either…)
>
>
> Its attempting to capture the string in between:
>
>  SRC="  and the next doublequote: ".  The [^"] stops the capture at 
> the next double quote. The capture should then include any character 
> that is NOT a double quote. If not careful, the expression could get 
> "greedy" and start matching other double quotes on the same line. 
>  This should stop that effect. The \1 is a reference back to the 
> capture that is in the parenthesis, in sed syntax, which essentially 
> just preserves the captured characters, and ignores the rest. Does 
> that make sense?
>
> -- 
> Hal

Thanks for the explanation Hal, unfortunately it is not doing the 
"ignores the rest" part It appears that it finds each occurrance of a 
file name, then replaces it with the same occurrance, without the " marks.






More information about the ubuntu-users mailing list