The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Dela en fil till flera filer glamo_2312 Shell-programmering och Skript 3 09-15-2008 10:58
Split-filen i flera filer beroende på första 4 siffror deepakgang Shell-programmering och Skript 4 04-09-2008 02:21
Exekvera flera. SQL filer från inre Shell skriptfil anushilrai Shell-programmering och Skript 3 04-07-2008 11:09
Hjälp behövs: Dela en stor fil till flera filer monicasgupta Shell-programmering och Skript 5 03-03-2008 07:09
hur man kan dela en enda stor loggfilen på flera filer. kamleshm Shell-programmering och Skript 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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 09-11-2008
smarter_aries smarter_aries is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 4
dela en enda SQL-filen i flera filer

Hej, Jag har en sql-fil som innehåller många skapa tabellen ddl's. Exempel:
CREATE TABLE sec_afs
(
rpt_per_typ_c char (1) NOT NULL,
rpt_per_typ_t varchar (20) NULL,
LOCK Allpages

EXEC sp_primarykey "sec_afs", rpt_per_typ_c

GRANT SELECT ON sec_afs TO developer_read_only


CREATE TABLE dbo.sec_iccc
(
user_nt_id_c char (16) NOT NULL,
unit_id_c char (4) NOT NULL
)
LOCK Allpages

GRANT SELECT ON sec_iccc TO developer_read_only


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


Jag vill dela upp denna fil i separata filer, en vardera för ett bord, jag har en tom rad före varje "skapa tabell" statement.So kan jag skapa en ny fil en gång var "skapa tabell" är encountered.Please berätta hur man gör detta i unix.-Tack
  #2 (permalänk)  
Old 09-11-2008
jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.763
Om du har csplit prova
Kod:
csplit mynewfile myfile.sql '^$'
  #3 (permalänk)  
Old 09-12-2008
smarter_aries smarter_aries is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 4
dela en enda SQL-filen i flera filer

Hej Jim, Tack för svar,
Jag har provat följande:
$ Csplit all_tables_Production '^ $'
csplit: ^ $: bad radnummer
$ Csplit all_tables_Production% ^ $%
csplit:% ^ $ - out of range
$ Csplit all_tables_Production `^ $`
ksh: ^ $: Not found
men det fungerar inte.
  #4 (permalänk)  
Old 09-12-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2007
Inlägg: 321
Om den tomma raden mellan CREATE TABLE punkterna är alltid närvarande här borde räcka:

Kod:
awk '/CREATE TABLE/{ n++; print > (f="out_" n); close(f)}' RS=  sql_file
Annat sätt använda

Kod:
awk '/CREATE TABLE/{f=0 ;n++; print >(file="out_" n); close("out_" n-1)} f{ print > file}; /CREATE TABLE/{f=1}'  sql_file
  #5 (permalänk)  
Old 09-15-2008
smarter_aries smarter_aries is offline
Registered User
  
 

Join Date: Sep 2008
Inlägg: 4
dela en enda SQL-filen i flera filer

Hej Rubin,
Tack din lösning fungerar!
awk '/ CREATE TABLE / (n + +; print> (f \u003d "out_" n), nära (f))' RS \u003d alltables
men, jag har nära 183 "skapa tabell" skript i min fil och ovan kraschar ut med fel:
awk: alltför många utdatafiler 10
rekordstort antal 11

Den andra lösningen ger:
awk '/ CREATE TABLE / (f \u003d 0; n + +; print> (file \u003d "out_" n), nära ( "out_" n-1)) f (print> fil); / CREATE TABLE / (f \u003d 1) "alltables
awk: syntaxfel nära linje 1
awk: bailing ut nära linje 1


Please let me know-how kan vi öka storleken 10 till 200.
Tack
  #6 (permalänk)  
Old 09-15-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2007
Inlägg: 321
Jaha ..., det är inte en awk fråga, men en OS en. Jag tvivlar dock att gränsen för filer i en dir är bara 10, det måste vara mycket mer än så.
Jag har testat koderna i Solaris, och de bombade först efter ~ 55.000 filer som har skapats i en dir, var alla i god form, och min testfil hade ~ 1.500.000 linjer.

Bra i det här fallet skulle jag föreslå att dela upp filen i mindre bitar (se sidorna man dela upp ditt OS) med storleken att koderna inte skulle misslyckas, skapa lika många kataloger som antalet skapade klumpar, flytta dessa bitar till den nyinrättade dirs, och kör de givna koder separat i vart och ett av dessa kataloger skapas.

BTW om du är på Solaris användning nawk.
Closed Thread

Komihåglista

Taggar
flera filer, dela, UNIX

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 07:11.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0