# Regexp challenge

**URL:** <https://www.ruby-forum.com/t/regexp-challenge/104901>\
**Category:** Ruby\
**Created:** [May 23, 2007, 6:15pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901 "2007-05-23T18:15:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 6:15pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/1 "2007-05-23T18:15:38Z")

</div>

Just out of curiosity, for fun:

Whats the rubyest ruby program you can code for opening a directory of  
files and replacing a particular string in all files (if found) with  
another string?

Lets suppose that all files in directory are text and the string to  
search  
for is “target”, and replace string is “practice”.

Csmr

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 6:40pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/2 "2007-05-23T18:40:41Z")

</div>

On 5/23/07, Casimir P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

You go first.

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 6:43pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/3 "2007-05-23T18:43:41Z")

</div>

On May 23, 2007, at 11:14 AM, Casimir P. wrote:

> Whats the rubyest ruby program you can code for opening a directory of  
> files and replacing a particular string in all files (if found) with  
> another string?
> 
> Lets suppose that all files in directory are text and the string to  
> search  
> for is “target”, and replace string is “practice”.

From inside the directory in question:

$ ruby -pi -e ‘gsub(“target”, “practice”)’ \*

James Edward G. II

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 9:43pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/4 "2007-05-23T21:43:05Z")

</div>

On May 23, 2007, at 2:39 PM, Tim P. wrote:

> > > search  
> > > learned three new things.  
> > > I come from Perl where tricks like that our very common,  
> > > which is probably just proof that my solution fails “the rubyest  
> > > ruby” requirement of the question.

James Edward G. II

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 9:59pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/5 "2007-05-23T21:59:07Z")

</div>

On 5/23/07, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I come from Perl where tricks like that our very common,  
> which is probably just proof that my solution fails “the rubyest  
> ruby” requirement of the question.

Well, you did fail to use a regular expression 😉

TwP

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 9:41pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/6 "2007-05-23T21:41:04Z")

</div>

On 5/23/07, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> From inside the directory in question:
> 
> $ ruby -pi -e ‘gsub(“target”, “practice”)’ \*
> 
> James Edward G. II

And we have a winner! James you never cease to amaze me. I just  
learned three new things.

TwP

---

<div class="post-metadata">

**Author:** ![Casimir\_P](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/839c29/32.png) [@Casimir\_P](https://www.ruby-forum.com/u/Casimir_P)\
**Post date:** [May 23, 2007, 10:55pm UTC](https://www.ruby-forum.com/t/regexp-challenge/104901/7 "2007-05-23T22:55:22Z")

</div>

On 5/23/07, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I come from Perl where tricks like that our very common,  
> which is probably just proof that my solution fails “the rubyest  
> ruby” requirement of the question.

Well, I was tempted to comment that your solution seemed more perlish  
than rubyish, but it was against my better nature.

–  
Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)
