From: Kyle Schmitt Date: 2008-01-18T00:32:32+09:00 Subject: gsub and regexes on binary files... I'm having a few issues with gsubbing a regex on a binary file. With all text, this seems to work great, but with the binary junk in a file, only some of the instances are replaced, not all. What this script is supposed to do, is pull mail message out of quarantine, change who it's going to, and put it back in postfix's queue to send it on its way. This is a super-simplified version of the code in question (just in-case you're wondering, if you really write something like this, you need to change the ownership and permission of the resulting file, otherwise postfix won't pick it up). #!/usr/bin/ruby message_path="/var/spool/MailScanner/quarantine/20080111/ABCDEFG" postfix_outgoing_path="/var/spool/postfix/incoming/A/ABCDEFG" message=File.open(message_path,"rb"){|f| f.read()} message.gsub(/[a-z][a-z0-9]*@candycompany.foo/i,"review-spam@candycompany.foo") outgoing_message=File.open(postfix_outgoing_path,"wb"){|f| f.write(message)} Err. Since the real version of this script is rather lengthy and a little ugly, mostly due to the command-line-option parsing, anyone have a suggestion on a good CLI library to use :) my home-grown attempt is functional at best... Thanks, Kyle