Hello monks,

I have two files the file1.txt and file2.txt. Both fi1es contains huge text messages with spaces and empty lines. I want to merge the two files has single text file seperated by newline. Below are the sample text for both Files and the expected output.

File1.txt

AD##Windows AD Event Log error-EventID:1001-Fault bucket , type 0 Event Name: MpTelemetry Response: Not available Cab Id: 0 Problem signature: P1: 0x80070490 P2: PackagesNotApplicable P3: unspecified P4: 11.1.4406.0 P5: mpsigstub.exe P6: unspecified P7: unspecified P8: P9: P10: Attached files: C:\Windows\Temp\MpSigStub.log C:\Windows\Temp\MPTelemetrySubmit\client_manifest.txt These files may be available here: C:\ProgramData\Microsoft\Windows\WER\ReportQueue\NonCritical_0x8007049 +0_d01184651bd335ae784ced19edd07fd2867bdcd6_cab_11b9d51d

file2.txt

Common-Sys##Windows error-EventID:7036-LiveUpdate stopped Common-Sys##Windows error-EventID:7036-DNS Client running Common-Sys##Windows error-EventID:7036-LiveUpdate running Common-Sys##Windows error-EventID:7036-WinHTTP Web Proxy Auto-Discover +y Service running AD##Windows AD Event Log error-EventID:5719-This computer was not able + to set up a secure session with a domain controller in domain GDNINDIA due to the following: There are currently no logon servers available to service the logon re +quest. This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator. Analysis symbol: Rechecking for solution: 0 Report Id: 66445275-c461-11e2-8735-002511a1e59c Report Status: 36

Expected Output

AD##Windows AD Event Log error-EventID:1001-Fault bucket , type 0 Even +t Name: MpTelemetryResponse: Not available Cab Id: 0 Problem signatur +e:P1: 0x80070490P2: PackagesNotApplicableP3: unspecifiedP4: 11.1.4406 +.0P5: mpsigstub.exeP6: unspecifiedP7: unspecifiedP8: P9: P10:Attached + files:C:\Windows\Temp\MpSigStub.log C:\Windows\Temp\MPTelemetrySubmi +t\client_manifest.txt These files may be available here:C:\ProgramDat +a\Microsoft\Windows\WER\ReportQueue\NonCritical_0x80070490_d01184651b +d335ae784ced19edd07fd2867bdcd6_cab_11b9d51d Analysis symbol: Rechecki +ng for solution: 0 Report Id: 66445275-c461-11e2-8735-002511a1e59c Re +port Status: 36 Common-Sys##Windows error-EventID:7036-LiveUpdate stopped Common-Sys##Windows error-EventID:7036-DNS Client running Common-Sys##Windows error-EventID:7036-LiveUpdate running Common-Sys##Windows error-EventID:7036-WinHTTP Web Proxy Auto-Discover +y Service running AD##Windows AD Event Log error-EventID:5719-This computer was not able + to set up a secure session with a domain controller in domain GDNINDIA due to the following: There are currentl +y no logon servers available to service the logon request.This may le +ad to authentication problems. Make sure that this computer is connec +ted to the network. If the problem persists,please contact your domai +n administrator.
use File::Slurp; my $outputfile1 = "file1.txt" my $outputfile2 = "file2.txt" my $outputfile3 = "file3.txt" open (my $combined_file,">$outputfile3") or die "cannot create combine +d output file - $!"; my @a = read_file($outputfile1) or die "couldn't read $outputf +ile1 - $! [$^E]"; my @b = read_file($outputfile2) or die "couldn't read $outputfile2 + - $! [$^E]"; my $combined = {}; # hashref my $i=0; foreach (@a) { chomp $_; $combined->{$i}{b} = '' unless defined $combined->{$i}{b}; $combined->{$i++}{a} = $_; } $i=0; foreach (@b) { chomp $_; $combined->{$i}{a} = '' unless defined $combined->{$i}{a}; $combined->{$i++}{b} = $_; } foreach my $i (sort {$a<=>$b} keys %$combined) { print $combined_file $combined->{$i}{a}, ("\n"),$combined->{$i +}{b}; } } close($combined_file);

Current Output

D##Windows AD Event Log error-EventID:1001-Fault bucket , type 0 Common-Sys##Windows error-EventID:7036-Multimedia Class Scheduler runn +ing Event Name: MpTelemetry Common-Sys##Windows error-EventID:7036-WinHTTP Web Proxy Auto-Discover +y Service stopped Response: Not available Common-Sys##Windows error-EventID:7036-Application Experience stopped Cab Id: 0 Common-Sys##Windows error-EventID:35-The time service is now synchroni +zing the system time with the time source bg6dc002.GDNINDIA.COM (ntp. +d|0.0.0.0:123->10.116.189.13:123). Problem signature: IIS##Windows IIS Event Log error-EventID:37-The time provider NtpClien +t is currently receiving valid time data from bg6dc002.GDNINDIA.COM ( +ntp.d|0.0.0.0:123->10.116.189.13:123). P1: 0x80070490 P2: PackagesNotApplicable Common-Sys##Windows error-EventID:7036-Multimedia Class Scheduler stop +ped P3: unspecified Common-Sys##Windows error-EventID:7036-Adobe Flash Player Update Servi +ce stopped P4: 11.1.4406.0 Common-Sys##Windows error-EventID:7036-Adobe Flash Player Update Servi +ce running P5: mpsigstub.exe Common-Sys##Windows error-EventID:7036-LiveUpdate stopped P6: unspecified Common-Sys##Windows error-EventID:7036-LiveUpdate running P7: unspecified Common-Sys##Windows error-EventID:1054-The processing of Group Policy +failed. Windows could not obtain the name of a domain controller. Thi +s could be caused by a name resolution failure. Verify your Domain Na +me System (DNS) is configured and working correctly. P8:

In reply to Combine two files into a single file by kar_thik82

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.