The UNIX and Linux Forums  


Go Back   UNIX e Linux Forum > Inizio Forum > UNIX for Dummies Domande & Risposte
.
google unix.com



UNIX for Dummies Domande & Risposte Se non sei sicuro dove pubblicare un UNIX o Linux domanda, posta da qui. Tutti i neofiti di Linux e UNIX benvenuto!

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Dividere un file in più file glamo_2312 Shell scripting e di programmazione 3 09-15-2008 10:58 AM
Divide il file in più file a seconda delle prime 4 cifre deepakgang Shell scripting e di programmazione 4 04-09-2008 02:21 AM
Esecuzione di più. SQL da file unico Shell Script file anushilrai Shell scripting e di programmazione 3 04-07-2008 11:09 AM
Help Needed: Split un unico grande file in più file monicasgupta Shell scripting e di programmazione 5 03-03-2008 07:09 PM
come dividere unico file di log di grandi dimensioni in più file. kamleshm Shell scripting e di programmazione 1 01-15-2008 07:33 PM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 09-11-2008
smarter_aries smarter_aries is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 4
sql dividere un unico file in più file

Ciao, ho un unico file che contiene molti SQL CREATE TABLE del ddl. Esempio:
CREATE TABLE sec_afs
(
rpt_per_typ_c char (1) NOT NULL,
rpt_per_typ_t varchar (20) NULL,
LOCK Allpages
andare
EXEC sp_primarykey 'sec_afs', rpt_per_typ_c
andare
SELECT sec_afs SULLA CONCESSIONE DI developer_read_only
andare

CREATE TABLE dbo.sec_iccc
(
user_nt_id_c char (16) NOT NULL,
unit_id_c char (4) NOT NULL
)
LOCK Allpages
andare
SELECT sec_iccc SULLA CONCESSIONE DI developer_read_only
andare

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

Voglio dividere questo file in file separati, uno per ogni tavolo, ho una riga vuota prima di ogni "create table" può essere statement.So posso creare un nuovo file, una volta ogni "create table" è encountered.Please dimmi come farlo in unix.-Grazie
  #2 (permalink)  
Old 09-11-2008
Jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.797
Se si dispone di provare csplit

Codice:
csplit mynewfile myfile.sql '^$'

  #3 (permalink)  
Old 09-12-2008
smarter_aries smarter_aries is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 4
sql dividere un unico file in più file

Ciao Jim, grazie per la risposta,
Ho provato la seguente:
$ Csplit all_tables_Production '^ $'
csplit: ^ $: cattivo numero di riga
$% ^ Csplit all_tables_Production $%
csplit: $% ^ - al di fuori del raggio
$ Csplit all_tables_Production `^ $`
ksh: ^ $: non trovato
ma non funziona.
  #4 (permalink)  
Old 09-12-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: novembre 2007
Interventi: 321
Se la riga vuota tra i paragrafi CREATE TABLE è sempre presente questo dovrebbe essere sufficiente:


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

Altrimenti l'uso,


Codice:
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
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 4
sql dividere un unico file in più file

Hi Rubin,
Grazie la tua soluzione funziona!
awk '/ CREATE TABLE / (n + +; stampa> (f \u003d "out_" n); close (f))' RS \u003d alltables
, ma ho stretto a 183 "create table" script nel mio file di cui sopra e si blocca con l'errore:
awk: troppi i file 10
numero 11

La seconda soluzione si ottiene:
awk '/ CREATE TABLE / f \u003d (0, n + +; stampa> (file \u003d "out_" n); vicino ( "out_" n-1) (print) f> file); / CREATE TABLE / f \u003d (1) 'alltables
awk: errore di sintassi vicino la linea 1
awk: salvataggio vicino fuori linea 1


Please let me know-how si può aumentare la dimensione da 10 a 200.
Grazie
  #6 (permalink)  
Old 09-15-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: novembre 2007
Interventi: 321
Vedo ..., che non è uno awk problema, ma un sistema operativo uno. Dubito però che il limite di file in una dir si trova a soli 10, è avuto modo di essere di più.
Ho controllato il codice di Solaris, e che solo dopo il bombardamento ~ 55000 file sono stati creati in uno dir, erano tutti in buona forma, e il mio file di prova era ~ 1.500.000 linee.

Ebbene in questo caso mi suggeriscono di suddividere il file in piccoli pezzi (vedi l'uomo dividere le pagine del vostro sistema operativo) per le dimensioni che i codici non mancherà, creare lo stesso numero di directory, il numero di pezzi creati, spostare questi blocchi a dir la nuova creazione, la data ed eseguire codici separatamente in ciascuna di queste directory create.

BTW, se siete su Solaris uso nawk.
Closed Thread

Segnalibri

Tag
più file, dividere, unix

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 12:06 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0