Como eu posso reescrever linhas em um arquivo txt usando grep [sed]?

3

Eu tenho um arquivo de texto onde cada linha tem o formato como este ...

25126 Akers, David

E eu estou precisando colocá-lo em um formato como este para inserir em um banco de dados ...

25126;Akers, David;

O único problema é que pode haver alguns com nomes com espaços como ...

25257 Ah You, C.J.

Foi-me dito que eu deveria usar o grep, mas não tenho certeza de como fazer isso.

    
por fwaokda 22.08.2011 / 21:47

1 resposta

3

grep não é adequado para tal tarefa, porque é uma ferramenta de pesquisa, mas se eu entendi corretamente o problema, você pode usar sed , como no exemplo a seguir:

sed 's/^\([0-9]\+\) \(.*\)$/;;/' input-file >output-file

Para verificar preventivamente se todas as linhas estão em conformidade com o padrão acima, execute o seguinte comando

sed -n '/^\([0-9]\+\) \(.*\)$/!p' input-file

que não deve devolver nada.

    
por enzotib 22.08.2011 / 22:13

Tags