Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^2: Syslog files revisited

by stevbutt (Novice)
on Aug 02, 2012 at 23:15 UTC ( #985112=note: print w/replies, xml ) Need Help??

in reply to Re: Syslog files revisited
in thread Syslog files revisited

This is certainly a move in the right direction and the date part is superb !, but it gives me the problem that the variable message at the end gets split up into an indeterminate number of csv values where if it were at least quoted I could read that as one field as the commas inside the quotes would be ignored ( I think )

Replies are listed 'Best First'.
Re^3: Syslog files revisited
by johngg (Abbot) on Aug 03, 2012 at 09:11 UTC
    ... but it gives me the problem that the variable message at the end gets split up into an indeterminate number of csv values ...

    No, the third parameter to split limits the number of resultant fields so the $remainder scalar variable holds the entirety of your variable message.



      Thats great and thank you very much for your help. I have one further issue though. My existing code now looks like this

      #!/usr/bin/perl use 5.010; use strict; use warnings; while (my $line = <STDIN>) { chomp($line); my ( $mon, $day, $time, $dom, $login, $remainder ) = split m{:?\s+}, $line, 6; my %monthNos = do { my $no = 0; map { $_ => ++ $no } qw{ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec }; }; my $yr = q{2012}; my $csv = sprintf q{%02d/%02d/%s %s,%s,%s,"%s"}, $day, $monthNos{ $mon }, $yr, $time, $dom, $login, $remainder; say $csv; }

      As I wanted the remainder to be in double quotes so it would read in as one field. The problem is that remainder sometimes already contains double quotes which I would like to remove or replace with single quotes

      I tried the following but it leaves be with an empty set of double quotes

      my $remainder =~ s/""\"\""/\'/g;

        Sorry to bother anyone with such trivial stuff, I played and found the the following worked

        $remainder =~ tr/"/'/d;

        Many Thanks

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://985112]
[marto]: I think that actually caught up with me yesterday, felt a really sharp pain where my neck meets my skull.
[Corion]: marto: Ouch, yeah...
[marto]: the boys uncle will take them for a couple of hours this afternoon :)
[marto]: only at work 3 days this week, then off to Copenhagen for a wedding
[marto]: back the following Monday, potentially gone 2-3 days the next week for work
[Corion]: Oh - "Cyber Monday" week is coming up... That's why weird stuff is already discounted now...
[Corion]: marto: Oh, cool, I hope you get to enjoy the trip and Copenhagen! I found it nice (but the mermaid is underwhelming)

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2017-11-19 11:35 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (280 votes). Check out past polls.