http://www.perlmonks.org?node_id=1023844


in reply to Re^5: dos2ux shows cannot open file if it is greater than 2GB size
in thread dos2ux shows cannot open file if it is greater than 2GB size

Fine, I suppose if you captured the output of a program that does print "\r95%", you'd have a problem. For the rest of the time, \r will only be found before \n.

Checking for \r\n is more expensive since you need special handling because the read can end between the two.

  • Comment on Re^6: dos2ux shows cannot open file if it is greater than 2GB size
  • Download Code

Replies are listed 'Best First'.
Re^7: dos2ux shows cannot open file if it is greater than 2GB size
by shan_emails (Beadle) on Mar 19, 2013 at 14:36 UTC

    Hi

    Thanks for your reply
    In my input file CONTROL_M character's are found inside the line also.
    When i try it by dos2ux it removed CONTROL_M character's inside line also.
    And my concern is to remove only CONTROL_M character and not any other special characters.
    Kindly advise how to proceed, also how to speed up the process by using below code.

    $self->remove_controlM($infile); sub remove_controlM { my $self = shift; my $in_file = shift; my $out_file = $in_file . "controlM_removed"; open(my $FH_IN, '<', $in_file) or die "Failed to open $in_file $!\n +"; print "REMOVE CONTROL_M CHARACTER PROCESS STARTING"; open(my $FH_OUT, '>', $out_file) or die "Failed to write $out_file +$!\n"; while (<$FH_IN>) { s/\r//g; print($FH_OUT $_); } close ($FH_IN); close ($FH_OUT); unlink($in_file); `mv $out_file $in_file`; print "REMOVE CONTROL_M CHARACTER PROCESS ENDING"; }

    Thanks,
    Shanmugam A.