in reply to Re: extracting data from a line
in thread extracting data from a line

Thanks for your input Jay. Your code worked well with what
I wanted to do. But...now came another glinch.
What if the input file looked like this:
c:/loc1/loc2/loc3/84xxxxxB01_e1_1

When ran, the program output looked like this:
84xxxxxB01e_bot
when it should look like this
84xxxxxB01_e1_bot

Do I need to remove the first two characters first
before running your "line" (/\/(^\/+)\d$/;) or
is there a way to this with your one "line" of code?

Bare with me as I don't get into programming with perl
as much as I'd like, but I'm trying.

Thanks..RCP

Replies are listed 'Best First'.
Re^3: extracting data from a line
by gothic_mallard (Pilgrim) on Oct 28, 2004 at 07:10 UTC

    I just ran that data line ( c:/loc1/loc2/loc3/84xxxxxB01_e1_1) through the above code and got 84xxxxxB01_e1_bot as expected, so I'm not sure why it didn't work for you.

    while (<DATA>) { /\/([^\/]+)\d$/; print $1."bot\n"; } __DATA__ c:/loc1/loc2/loc3/84xxxxxB01_e1_1

    --- Jay

    All code is untested unless otherwise stated.
    All opinions expressed are my own and are intended as guidance, not gospel; please treat what I say as such and as Abigail said Think for yourself.
    If in doubt ask.

      UPDATE: Before anyone could reply, I had managed
      to figure this out on my own! I was able
      to extract words between two key words and
      get the last word in a line (reverse) to
      form a new sentence.

      RCP

      Took awhile to get back to Jay..but it did work the second
      time around....Thanks again.
      I have a similar extraction request but with a twist,
      as I'm trying to extract data between any two key words,
      using a keyword to find a particular sentence.

      Data: (contains several lines of data)
      Board Name: just a test run Department: my1234
      open (FILEH, "/tmp/aform"); while (<FILEH>) { chomp; open(MYOUTFILE, ">>/tmp/new_form"); if ( /Department/ ) { $bname =~ /^Board Name:(.+)Department/; print MYOUTFILE "$bname'\n"; } close(FILEH); close(MYOUTFILE);
      I'm trying to get it to output only "just a test run"
      to a file, but all I get is an error. How can I
      also extract only the last word (my1234) from the same line?
      error message I got...
      Use of uninitialized value in pattern match (m//)
      Use of uninitialized value in concatenation (.) or string
      Thanks... RCP