The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Dummies Spørsmål og svar
.
google unix.com



UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen!

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Split en fil i flere filer glamo_2312 Shell programmering og Skripting 3 09-15-2008 10:58
Split-filen i flere filer avhengig første 4 tallene deepakgang Shell programmering og Skripting 4 04-09-2008 02:21
Kjøre flere. SQL filer fra Single Shell skriptfil anushilrai Shell programmering og Skripting 3 04-07-2008 11:09
Hjelp Trengs: Split en stor fil til flere filer monicasgupta Shell programmering og Skripting 5 03-03-2008 07:09
hvordan man skal dele én stor loggfilen i flere filer. kamleshm Shell programmering og Skripting 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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 09-11-2008
smarter_aries smarter_aries is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 4
splitte én sql fil i flere filer

Hei, jeg har en enkelt sql fil som inneholder mange opprette tabellen ddl's. Eksempel:
CREATE TABLE sec_afs
(
rpt_per_typ_c char (1) NOT NULL,
rpt_per_typ_t varchar (20) NULL,
LOCK Allpages
dra
EXEC sp_primarykey 'sec_afs', rpt_per_typ_c
dra
GRANT SELECT PÅ sec_afs TIL developer_read_only
dra

CREATE TABLE dbo.sec_iccc
(
user_nt_id_c char (16) NOT NULL,
unit_id_c char (4) NOT NULL
)
LOCK Allpages
dra
GRANT SELECT PÅ sec_iccc TIL developer_read_only
dra

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

Jeg ønsker å dele denne filen inn i separate filer-en for en tabell, jeg har en tom linje før hver "create table" statement.So kanskje jeg kan lage en ny fil hver "create table" er encountered.Please fortelle meg hvordan du gjør dette i unix.-Takk
  #2 (permalink)  
Old 09-11-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Bli Date: Feb 2004
Beliggenhet: NM
Innlegg: 5805
Hvis du har csplit prøve

Code:
csplit mynewfile myfile.sql '^$'

  #3 (permalink)  
Old 09-12-2008
smarter_aries smarter_aries is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 4
splitte én sql fil i flere filer

Hei Jim, Takk for svare,
Jeg prøvde det følgende:
$ Csplit all_tables_Production '^ $'
csplit: ^ $: bad linjenummer
$ Csplit all_tables_Production% ^ $%
csplit:% ^ $ - utenfor rekkevidde
$ Csplit all_tables_Production `^ $`
ksh: ^ $: Finner ikke
men det fungerer ikke.
  #4 (permalink)  
Old 09-12-2008
rubin's Avatar
rubin rubin is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: november 2007
Innlegg: 321
Hvis blank linje mellom CREATE TABLE avsnittene er til stede alltid dette skulle være nok:


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

Ellers bruker,


Code:
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
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 4
splitte én sql fil i flere filer

Hei Rubin
Takk løsningen fungerer!
awk '/ CREATE TABLE / (n + +; print> (f \u003d "out_" n); close (f))' RS \u003d alltables
men, jeg har nær 183 "create table" skript-filen min, og de ovennevnte krasjer med feil:
awk: for mange utdatafiler 10
posten nummer 11

Den andre løsningen GIR:
awk '/ CREATE TABLE / (f \u003d 0; n + +; print> (file \u003d "out_" n); close ( "out_" n-1)) f (print> fil); / CREATE TABLE / (f \u003d 1) 'alltables
awk: syntaksfeil nær linje 1
awk: bailing ut nær linje 1


Please let me know-how kan vi øke størrelsen 10 til 200.
Takk
  #6 (permalink)  
Old 09-15-2008
rubin's Avatar
rubin rubin is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: november 2007
Innlegg: 321
Jeg ser ..., det er ikke et awk problem, men en OS-et. Jeg tviler på om at grensen på filene i én dir er bare 10, det må være mye mer enn det.
Jeg testet kodene i Solaris, og de utbombede bare etter ~ 55000 filene ble opprettet i en dir, de var alle i god form, og min testfil hadde ~ 1500000 linjer.

Vel i dette tilfellet jeg vil foreslå å splitte filen i mindre biter (se mennesket delt sider av OS) til størrelsen at kodene ikke ville svikte, skape samme antall kataloger som antall biter opprettet, flytte disse biter til den nyopprettede dirs, og kjøre den gitte koder separat i hver av disse katalogene opprettes.

BTW hvis du er på Solaris bruk nawk.
Closed Thread

Hugseliste

Tags
flere filer, dele, UNIX

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 01:23.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0