Convertendo strings no arquivo de entrada

1

Eu tenho um arquivo de texto file1.txt no Unix. Eu gostaria de produzir outro arquivo file2.txt , no qual eu mudo todos os grupos de linhas que tem este formato (tirado de um exame de múltipla escolha)

a. [first choice]
b. [second choice]
c. [third choice]

para

[first choice] [second choice] [third choice]

Como eu poderia fazer isso?

EDIT : um exemplo é

What is the value of three plus five?
a. six
b. seven
c. eight

This line is not so relevant.
blah blah

What is the capital of England?
a. London
b. Birmingham
c. New York

Deve ser convertido para

What is the value of three plus five?
six seven eight

This line is not so relevant.
blah blah

What is the capital of England?
London Birmingham New York    
    
por Mika H. 01.12.2012 / 21:16

1 resposta

2

Supondo que seja sempre 3 opções, a. , b. e c. , tente isto:

sed '/^[a-c]\. /{N;N;s/[a-c]\. / /g;s/[\r\n]//g;s/^ //}' file1.txt > file2.txt

Isso funciona pegando três linhas de cada vez usando o comando N , substituindo um espaço por todas as ocorrências a. , b. e c. , excluindo todas as extremidades da linha e, finalmente, excluindo último espaço extra restante no início da linha.

    
por 01.12.2012 / 21:29

Tags