in reply to Re^10: How do I use grep in a script
in thread How do I use grep in a script

STATUS Acct:142424 Disposition:9000 CANCEL Wait: 04/11/17 DEBTOR Name:LastName FirstName Ssn:123456789 Cbr: Ph:555.555.1212

All of the above is on the same line.

Replies are listed 'Best First'.
Re^12: How do I use grep in a script
by Flintlock (Novice) on Dec 27, 2017 at 18:12 UTC
    The test data posted by poj returns the expected results, so what can be the difference?
      I have determined what the issue is attempting to add the "Name:" search.

      The Name: is actually on a separate line in the text file ie.

      STATUS Acct:142424 Disposition:9000 CANCEL Wait: 04/11/17 DEBTOR Name:LastName FirstName Ssn:123456789 Cbr: Ph:555.555.1212

      So I need to somehow grab both the LastName and the 142424 and concatenate then into LastName_142424_2017.txt

      while (<$fh>){ next unless /\S/; # skip blank lines if (/Acct:(\d+)/){ $acct = $1; if (/Name:([^\s]+)/){ $acct = $1.'_'.$acct; } } push @{$data{$acct}},$_ if ($acct); }
      But this does not take into account for the Name: search to be on another line and still keep ALL the text to be added to the new file.

      Any suggestions on how I can accomplish this?

        Are the account numbers unique such that you can build a mapping of account number => name ?

        my %name = (); . . while (<$fh>){ next unless /\S/; # skip blank lines if (/Acct:(\d+)/){ $acct = $1; } if (/Name:([^\s]+)/){ $name{$acct} = $1; } push @{$data{$acct}},$_ if ($acct); }
        my $outfile = join '_',$name{$acct},$acct,'2017.txt';
        poj