Sorry for yet another regex question, but I have exhausted all my knowledge of regex and need guidance please on solving a problem.

I have inherited some java code which was originally created using Poseidon modelling tool. We no longer use the modelling tool but the code has lots of lovely tags left behind which I was going to remove with a 'quick' perl script (but now I'm stuck).

Each file has a number of tags that look like the following
* @poseidon-object-id [ Im39098af8m115b2fe9698mm7dca ]
N.B. The above line starts with a space just for clarication and the part in the bracket is always different

I have tried a couple of routines which traverse the filesystem (which I found on this site)
#!/usr/bin/perl -w # Update: Script should now work without generating # any warnings concering the %skip hash. Thanks to # jmcnamara for helping with that :) # This script will remove carriage returns (\r) from # all files located below a specified parent directory. # Could be expanded to allow any modifications. use strict; use File::Find; use File::Basename; #################################### # Configuration # Directory where recursive modification will begin my $dir = "/home/anthony/Development/Utils/temp1"; # File extensions to skip (ie: images) # Each entry has the following look: # 'file extension' => 1 my %skip = ( 'gif' => 1, 'jpg' => 1, 'jpeg' => 1, 'png' => 1 ); #################################### # Main Program - No Need To Edit :) my $count; # Just a counting thing my @dirs; # All recursed directories # This does at least 85% of the work! # It gets a recursive list of all directories find(\&{ sub { if (-d "$File::Find::dir/$_") { if ($count++ == 0) { push @dirs, $File::Find::dir; } else { push @dirs, $File::Find::dir . "/$_"; } } } }, $dir); # Loop through all directories foreach my $curDir (@dirs) { # Get list of files from the directory opendir DIR, $curDir; my @files = readdir DIR; closedir DIR; # Loop through the files foreach my $file (@files) { # Skip directories and "." and ".." entries # as well as excluded file extensions my ($nil,$ext) = $file =~ /^(.*?)\.(.*?)$/gs; $ext = '' unless defined $ext; next if (-d "$curDir/$file" || $file =~ /^\./ || $skip{$ext}); # Read in the file open FILE, "$curDir/$file"; my @lines = <FILE>; close FILE; # Modify and print the file back open FILE, ">$curDir/$file"; print FILE map { s/.*\@[poseidon]$/ /g; $_; } @lines; close FILE; } }

I have also tried a couple of simpler CLI's such as
perl -p -i -e 'm/^@poseidon//g' AbstractEnum.java

But I am just either removing only the word 'poseidon' or I delete the entire contents of the file!

All I would like to do is to remove the entire line which starts with

* @poseidon ...

Could someone kindly help please.

Many thanks in advance.

20090501 Janitored by Corion: Changed PRE to code tags, as per Writeup Formatting Tips


In reply to Removing @poseidon tags from java code by onicom

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.