shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Inserir quebra de linha a cada N repetições de um pad


From: Fredi Rolf Bieging
Subject: Re: [shell-script] Inserir quebra de linha a cada N repetições de um padrão.
Date: Wed, 27 Jan 2016 13:08:54 -0200

Oops... agora sim:

sed "s/),(/);\nINSERT INTO 'TABLE' VALUES (/5;" arquivo.sql

2016-01-27 13:07 GMT-02:00 Fredi Rolf Bieging <address@hidden>:
Veja se isso resolve:

sed "s/),(/);\nINSERT INTO 'TABLE' VALUES ((/5;" arquivo.sql



2016-01-27 12:22 GMT-02:00 Rodrigo Tenorio address@hidden [shell-script] <address@hidden>:
 

Caros camaradas de lista,

Tenho comigo um longo insert table de uma linha apenas [8M em txt] que meu computador limitado não consegue processar de uma única vez. Eu gostaria de transformar essa única linha em muitas linhas da seguinte forma:

Padrão:
INSERT INTO 'TABLE' VALUES (1,'Rio Branco','20 de Novembro','Sobral','69903-695','Rua'),(2,'Rio Branco','A','Floresta','69906-350','Rua'),(3,'Rio Branco','A','Terminal Cadeia Velha','69900-520','Rua'),(4,'Rio Branco','A','Jardim de Alah','69911-290','Rua'),(5,'Rio Branco','A','Manoel Julião','69912-680','Rua'),(6,'Rio Branco','A','João Eduardo','69904-665','Rua'),(7,'Rio Branco','Abacate','Morada do Sol','69910-310','Rua'),(8,'Rio Branco','Abelhas','Santa Quitéria','69914-370','Rua'),(9,'Rio Branco','Absolon de Almeida','Cerâmica','69900-430','Travessa'),(10,'Rio Branco','AC-040','Vila Acre','69902-450','Rodovia');

Para:
INSERT INTO 'TABLE' VALUES (1,'Rio Branco','20 de Novembro','Sobral','69903-695','Rua'),(2,'Rio Branco','A','Floresta','69906-350','Rua'),(3,'Rio Branco','A','Terminal Cadeia Velha','69900-520','Rua'),(4,'Rio Branco','A','Jardim de Alah','69911-290','Rua'),(5,'Rio Branco','A','Manoel Julião','69912-680','Rua');
INSERT INTO 'TABLE' VALUES (6,'Rio Branco','A','João Eduardo','69904-665','Rua'),(7,'Rio Branco','Abacate','Morada do Sol','69910-310','Rua'),(8,'Rio Branco','Abelhas','Santa Quitéria','69914-370','Rua'),(9,'Rio Branco','Absolon de Almeida','Cerâmica','69900-430','Travessa'),(10,'Rio Branco','AC-040','Vila Acre','69902-450','Rodovia');

Assim com um loop em shell eu pretendo executar linha a linha.
Bom a parte do LOOP eu domino, mas meu conhecimento limitado em SED não me ajudou.

Como TESTE tentei:
sed "s/\(([0-9]*,\(.*,\)\{3\}[0-9'-]\{11\},.*),\)\{2\}/\nTESTE &/g"
Mas o resultado foi apenas uma linha em branco e a segunda com "TESTE" seguido do restante da linha.

Precisava de uma força.

Grato,
Rodrigo Boëchat




reply via email to

[Prev in Thread] Current Thread [Next in Thread]