Processing a text file

B

barjunk

I have a radius users text file that has entries like:

# username - Thu Feb 15 08:59:03 AKST 2007
davidh Calling-Station-Id != "00-1A-02-3E-93-28", Auth-Type := Reject
davidh User-Password == "secretpass"
#


There are two things I would like to be able to do separately, one is
to delete that set of lines given the username.

The second is to change the password or the MAC address given the
username.

I think the second one is probably easy, using regex some sort of
"sed" like command.

The first one is a little more demanding on my nuby mind. I guess I
can figure out some sort of "grep -v" functionality, but that leaves
the line above and below as cruft.

Suggestions?

Mike B.
 
E

Edwin Fine

barjunk said:
I have a radius users text file that has entries like:

# username - Thu Feb 15 08:59:03 AKST 2007
davidh Calling-Station-Id != "00-1A-02-3E-93-28", Auth-Type := Reject
davidh User-Password == "secretpass"
#
...

I don't know how big the file is, but if you can read it all into a
string (e.g. str = File.read("the_file") ), you could use something like
this:

def zap_unwanted_lines(str, user)
re = %r[
^\#\s+username\s+-\s+\w{3}\s\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}\s\w+\s\d{4}\n
#{user}\s+Calling-Station-Id[^\n]+\n
#{user}\s+User-Password[^\n]+\n
\#\s*\n
]x

str.gsub re, ''
end

TEXT = %q{
# username - Thu Feb 15 08:59:03 AKST 2007
davidh Calling-Station-Id != "00-1A-02-3E-93-28", Auth-Type := Reject
davidh User-Password == "secretpass"
#
}

dummy = "This is some dummy text\n" * 5
fake_radius_data = dummy + TEXT + dummy + TEXT + dummy

puts "--- Before zapping ---"
puts fake_radius_data
puts "--- After zapping ---"
puts zap_unwanted_lines(fake_radius_data, "davidh")
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top