Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 331
  • Last Modified:

Add a marker to the first row of a record using Perl

I have this data record using a input record separator as __Data__ and would like to add a marker to the first row of this data record.

Current,

Here's the data record....

__Data__
scsi_test_hotswap
stop
Passed
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld

__Data__
scsi_test_memory_leakage
stop
Passed
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld
3. dldldld - dldldldldldldldld
4. dldldld - dldldldldlldldldld

Ideal output would be

Here's the data record....

__Data__
@scsi_test_hotswap
stop
Passed
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld

__Data__
@scsi_test_memory_leakage
stop
Passed
1. dldldld - dldldldldldldldld
2. dldldld - dldldldldlldldldld
3. dldldld - dldldldldldldldld
4. dldldld - dldldldldlldldldld

I know the solution would be to use a regex search and replace but not sure how to construct it....
0
areyouready344
Asked:
areyouready344
  • 2
1 Solution
 
sjklein42Commented:
save as fixit.pl

perl fixit.pl infile.txt >outfile.txt

$fixNext = 0;
while ( <> )
{
	s/[\r\n]//g;
	if ( $fixNext ) { $_ = '@' . $_; $fixNext = 0; }
	if ( /__Data__/ ) { $fixNext = 1; }
	print $_ . "\n";
}

Open in new window

0
 
areyouready344Author Commented:
worked perfect, thanks sjklein42.....
0
 
areyouready344Author Commented:
excellent solution...
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now