Neutralização de dados do Windows para o Unix

2

Acabei de notar que outros arquivos de plataformas (Windows) tiveram que me causar muitos bugs, como aqui , meus regexes. Principalmente, a linha que termina com ^M .

Parece haver muitas maneiras de fazer o dos2unix, como aqui descrito. No entanto, não tenho certeza se isso é suficiente para o problema de ^M do caractere, ou seja, de todos os sistemas Windows para o Unix.

Código Exmple

while (my $file = readdir($DIR)) {
    ## Reset the counter
    my $c=0;
    ## Skip any files that aren't .tex
    next unless $file =~ /\.tex$/;

    ## Open the file
    open(my $fh,"$path/$dir/$file");
    ######### TODO  I think the replacement should be done here
    ######### Pseudocode : 's/\r\n/\n/' input.txt

    while (<$fh>) {...}

        s/\r\n\z//;  # TODO bug here, 
                     # This line is not affecting the file globally. 
                     # I need to somehow apply the replament to the file. 
                     # Probably, I should do it globally, since this seems to be only locally. 
                     # What do you think?

que retorna dados como este no meu sistema unix

\subsection{3}^MA 45 y.o male says that for the last year he occasionally has regurgitated particles from food eaten several days earlier.

Qual é a diferença entre as seguintes substituições?

# 1

s/\r\n\z//;

que não está retornando nenhuma substituição aparente.

# 2

s/\r\n\z//g;

que não está retornando dados corretos. Os dados acima {3} ^ MA 4 ainda podem ser vistos na saída.

# 3

s/\R//g;

que retorna dados orientados falsamente como

\subsection{4}All the following are associated with an increased risk for gallstones, except:
\begin{question}{Why hemolysis can give gall stones?}Bilirubin accumulation.\end{question}
...
\begin{question}{Vomiting. Why?}Neuropathy of stomach. Changes in the nervous system of the intestinal system. Not using insulin all the time. % Ketone irritation possible. % ketoacidosis \end{question}

onde tudo é colocado em uma linha até mesmo comentários, então não é # 2.

Qual é a maneira apropriada de fazer o win2unix no script Perl?

    
por Léo Léopold Hertz 준영 31.10.2014 / 23:33

1 resposta

1

boa resposta está no comentário de Siyuan Ren. Use de alguma forma o comando

tofrodos
    
por 21.03.2015 / 18:10