Removendo um padrão do arquivo de texto

0

Eu tenho um arquivo crivado com esse tipo de coisa:

-POEM-
>> The big brown fox
>> jumps over the
>> lazy dog.
The end.

Eu quero me livrar de "\ n > >" e apenas transformar isso em um oneliner:

-POEM-
The big brown fox jumps over the lazy dog.
The end.

Estou tentando o seguinte, e todos se recusam a trabalhar:

perl -pe 's/\r?\n>>//g' task.tex
tr '\n\>\>' '' < task.tex 
sed -i ':a;N;$!ba;s/\n>>//g' task.tex 

O que estou fazendo de errado?

    
por Moronic 21.02.2014 / 04:54

3 respostas

1

Por que você tem que passar por tantos problemas? Aqui está o que acabei de fazer com o seu texto.

  1. Abra o arquivo no GEdit.

  2. Mantenha o cursor no início da segunda linha

  3. Use CTRL + H (Localizar e substituir)

  4. Encontre >> e substitua por SPACE

  5. Encontre \n e substitua por SPACE

Certifique-se de usar REPLACE ALL nos dois casos (4 e 5).

Foi o que eu fiz e funcionou:)

    
por 21.02.2014 / 05:11
0

Supondo que o texto esteja em um arquivo chamado x.txt :

tr -d '\n>>' < x.txt | sed -e 's/-POEM-/&\n/' -e 's/\./&\n/g'
    
por 21.02.2014 / 06:08
0

Isso funcionou para mim:

while read line; do
         line1='echo $line';
         if [ 'echo $line1 | grep "^>" | wc -l' -eq 1 ];
         then
                 var1='echo $line1 | sed 's/^...//'';
                 line2='echo $line2 $var1';
         else
                 echo $line2;
                 echo $line1;
         fi;
done < task.tex
    
por 21.02.2014 / 06:30

Tags