On Thu, Aug 9, 2012 at 11:31 AM, ajay paswan <[email protected]> wrote:
> How can I eliminate every 'a' in a file if it is not inside double
> quote?
>
> For example:
>
> input:"acb"gha"abc"
> output:"acb"gh"abc"
Here's one way:
$ ruby19 -i.bak rr.rb t1.txt t2.txt
$ diff -U5 t1.txt.bak t1.txt
--- t1.txt.bak 2012-08-09 12:47:35.043920600 +0200
+++ t1.txt 2012-08-09 12:50:02.181058200 +0200
@@ -1,11 +1,11 @@
111111111
-a
+
b
-ab
-ba
-bab
+b
+b
+bb
"a"
"b"
"ab"
"ba"
"bab"
$ diff -U5 t2.txt.bak t2.txt
--- t2.txt.bak 2012-08-09 12:47:55.923182500 +0200
+++ t2.txt 2012-08-09 12:50:02.184058800 +0200
@@ -1,11 +1,11 @@
222222222
-a
+
b
-ab
-ba
-bab
+b
+b
+bb
"a"
"b"
"ab"
"ba"
"bab"
$ cat -n rr.rb
1 ARGF.each do |line|
2 puts line.split(/("[^"]*")/).each {|s| /\A"/ =~ s or
s.gsub!(/a/, '')}.join
3 end
Cheers
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
-- You received this message because you are subscribed to the Google Groups
ruby-talk-google group. To post to this group, send email to
[email protected]. To unsubscribe from this group, send email
to [email protected]. For more options, visit this
group at https://groups.google.com/d/forum/ruby-talk-google?hl=en