The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
google unix.com



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Dividir um arquivo em vários arquivos glamo_2312 Programação Shell Script e 3 09-15-2008 10:58
Dividir arquivo em vários arquivos, dependendo 4 primeiros dígitos deepakgang Programação Shell Script e 4 04-09-2008 02:21
Executando Múltiplos. SQL Files Único de Shell Script arquivo anushilrai Programação Shell Script e 3 04-07-2008 11:09
Help Needed: Dividir um arquivo grande em vários ficheiros monicasgupta Programação Shell Script e 5 03-03-2008 07:09
como dividir a única grande arquivo de log em vários arquivos. kamleshm Programação Shell Script e 1 01-15-2008 07:33

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-11-2008
smarter_aries smarter_aries is offline
Usuário
  
 

Join Date: Sep 2008
Posts: 4
sql dividir um único arquivo em vários arquivos

Oi, eu tenho um único arquivo contendo muitos sql criar tabela ddl's. Exemplo:
CREATE TABLE sec_afs
(
rpt_per_typ_c char (1) NOT NULL,
rpt_per_typ_t varchar (20) NULL,
LOCK Allpages
ir
EXEC sp_primarykey 'sec_afs', rpt_per_typ_c
ir
GRANT SELECT ON sec_afs PARA developer_read_only
ir

CREATE TABLE dbo.sec_iccc
(
user_nt_id_c char (16) NOT NULL,
unit_id_c char (4) NOT NULL
)
LOCK Allpages
ir
GRANT SELECT ON sec_iccc PARA developer_read_only
ir

CREATE TABLE sac_recon (
rec_number int NOT NULL,
rec_grp_number int NOT NULL,
)
ir

Quero dividir este ficheiro em ficheiros separados, um para cada uma mesa, eu tenho uma linha em branco antes de cada "criar tabela" statement.So pode ser posso criar um novo arquivo cada vez "criar mesa" é encountered.Please diga-me como fazer isso em unix.-Obrigado
  #2 (permalink)  
Old 09-11-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.800
Se você tentar csplit

Código:
csplit mynewfile myfile.sql '^$'

  #3 (permalink)  
Old 09-12-2008
smarter_aries smarter_aries is offline
Usuário
  
 

Join Date: Sep 2008
Posts: 4
sql dividir um único arquivo em vários arquivos

Jim oi, Obrigado por responder,
Eu tentei o seguinte:
$ Csplit all_tables_Production '^ $'
csplit: ^ $: mau linha
Csplit all_tables_Production $% ^ $%
csplit:% ^ $ - fora do intervalo
$ Csplit all_tables_Production `^ $`
ksh: ^ $: não encontrado
mas ele não funciona.
  #4 (permalink)  
Old 09-12-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Usuário
  
 

Join Date: Nov 2007
Lugares: 321
Se a linha em branco entre parágrafos CREATE TABLE está sempre presente este deveria ser suficiente:


Código:
awk '/CREATE TABLE/{ n++; print > (f="out_" n); close(f)}' RS=  sql_file

Caso utilize,


Código:
awk '/CREATE TABLE/{f=0 ;n++; print >(file="out_" n); close("out_" n-1)} f{ print > file}; /CREATE TABLE/{f=1}'  sql_file

  #5 (permalink)  
Old 09-15-2008
smarter_aries smarter_aries is offline
Usuário
  
 

Join Date: Sep 2008
Posts: 4
sql dividir um único arquivo em vários arquivos

Oi Rubin,
Graças a sua solução funciona!
awk '/ CREATE TABLE / (n + +; imprimir> (f \u003d "out_" n); close (f))' RS \u003d alltables
mas, tenho perto de 183 "criar tabela" scripts em meu arquivo e que precede a falha com o erro:
awk: muitos arquivos de saída 10
número recorde 11

A segunda solução DÁ:
awk '/ CREATE TABLE / (f \u003d 0; n + +; imprimir> (file \u003d "out_" n); estreita ( "out_" n-1) f) (print> arquivo); / CREATE TABLE / f \u003d (1) «alltables
awk: erro de sintaxe próximo a linha 1
awk: bailing out perto da linha 1


Por favor, deixe-me saber como é que podemos aumentar o tamanho de 10-200.
Obrigado
  #6 (permalink)  
Old 09-15-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Usuário
  
 

Join Date: Nov 2007
Lugares: 321
Estou a ver ..., esse não é um awk problema, mas sim um SO um. Duvido ainda que o limite de arquivos em uma pasta é de apenas 10, ele tem de ser muito mais do que isso.
Eu testei os códigos no Solaris, e eles só depois fora bombardeado ~ 55000 arquivos foram criados em um dir, que estavam todos em boa forma, e meu teste arquivo tinha ~ 1.500.000 linhas.

Bem, neste caso, eu me sugerir para dividir o arquivo em pedaços menores (ver páginas de seu homem dividido OS) para o tamanho que os códigos não iria falhar, criar o mesmo número de diretórios como o número de pedaços de criar, mover esses pedaços para o recém-criado dirs e executar os códigos dadas separadamente em cada um desses diretórios criada.

BTW, se você estiver em uso Solaris nawk.
Closed Thread

Marcadores

Tags
múltiplos arquivos, divisão, unix

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 11:26.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0