![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| ld: fatale: allocatable contro le delocalizzazioni restano ma non-scrivibile sezioni | tdallagn | SUN Solaris | 0 | 05-21-2008 08:58 AM |
| estratto di più sezioni di un file | rgentis | UNIX e avanzata per utenti esperti | 1 | 03-18-2008 08:40 PM |
| Estratto linee multiple in più luoghi in un file | dala | Shell scripting e di programmazione | 8 | 03-14-2008 03:28 PM |
| Manipolare file di configurazione con lo stesso nome del parametro in più sezioni | Potrò | Shell scripting e di programmazione | 7 | 03-05-2008 11:36 AM |
| estrarre uno sotto forma di file. tar.gz senza Uncompressing file. tar.gz | balireddy_77 | Shell scripting e di programmazione | 2 | 07-10-2007 05:23 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
estratto di più sezioni del file
Ho un file che ho bisogno di analizzare più sezioni dal file.
Il file contiene più righe che iniziano con ST (Abunch di dati) Allora il file contiene più righe che iniziano con SE (Abunch di dati) SE * 30 * 0001 ST * 810 * 0002 Ho bisogno di tutte le linee e compresi tra questi. Si tratta di fatture. La fattura inizia con la linea ST e termina con la SE linea. Ho bisogno di uscire tutte le fatture in file separati. Posso per favore qualcuno mi aiuti. So Grep, sed, O AWK può farlo, ma non si sa come. Grazie Ecco un esempio: ST * 810 * 0001 BIG * 20080315 * 1220680417 ** *** FORNITURA DI N1 * SF * MCLANE High Plains * 92 * 46120004 N1 * ST * SWC 7-11 # 57134 * 91 * 571315 N3 * E 8TH ST 2712 ODESSA N4 * * * TX 79761 RIF ST * 000134 * ITD * 05 * 3 ***** ***** 7 NET 7 IT1 CA ** 1 * * * 20,09 ** CB 649251 PI * * * 093 * 099299711018 UP * RA * NA ZZ TXI * 2 * 1,53 **** PTC ** RES * 0 * 1 *** RSI PID * F **** 7-11 T-SHIRT BORSA 1 / 7 BBL PO4 * 1000 IT1 ** 1 * EA * 33,72 * ** CB 834861 PI * * * 093 * 012253022401 UP * RA * NA ZZ TXI * 2 * 2,57 **** PTC ** RES * 0 * 1 *** RSI PID * F **** KIT CONCRETI CHAMP PO4 * 1 IT1 ** 1 * EA * 0,03 ** * CB 192849 PI * * * 093 * 000000192842 UP * RA * NA PTC ** RES * 0 * 1 *** RSI PID * F **** SCS 711 BK 200 PO4 * 1 IT1 ** * 30 * 2,59 ** EA CB * 001511 * PI * 093 * UP * 025215102776 * RA * NA PTC ** RES * 0 * 1 *** RSI PID * F **** MAXELL T-160 PLUS VIDEO PO4 * 1 TDS * 18454 SAC * C * G740 ******* *** 5300 *** 06 SERVIZIO CTT * 4 SE * 30 * 0001 |
|
||||
|
Grazie per la tua tempestiva risposta.
Essa ha fatto ciò che volevo. Tuttavia le tre sezioni devono essere analizzati a diversi file. Quindi avete ST dati SE Ciò dovrebbe essere preso in un file 1 ST dati SE Ciò dovrebbe essere preso a 2 file ETC ..... Inoltre ho notato che la ST e SE sono numerati. ST * 810 * 0004 Allora SE * (Numero) * 0004 Grazie Ultimo a cura di rgentis; al 03/18/2008 08:07 PM.. Motivo: Aggiunto qualcosa |
|
||||
|
nawk 'BEGIN (n \u003d 1)
$ 0 ~ / ^ ST / f \u003d (1) $ 0 ~ / ^ SE / (fattura [n] \u003d sprintf ( "% s \ n% s", fattura [n], $ 0), f \u003d 0; n \u003d n +1) ( if (f \u003d\u003d 1) fattura [n] \u003d sprintf ( "% s \ n% s", fattura [n], $ 0) ) END ( for (i in fattura) stampa fattura [i]>> i close (i) ) 'File |
|
||||
|
estratto di più sezioni del file
# - Utilizzare ST valori come output file.
awk-v out \u003d "/ dev / null" ' / ^ ST / (gsub ( "\ \ *","-",$ 0); $ i \u003d 0". Txt ") / ^ SE / (stretta (out)) (Printf "% s \ n", $ 0>> out) '$ Infile Uscita sarà ST-810-0001.txt così via ... -Ramesh |
![]() |
| Segnalibri |
| Tag |
| linux, linux comandi, solaris |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|