|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | ||
|
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
espressioni regolari (perl o sed)
Ciao a tutti,
ho bisogno di effettuare una trasformazione su un file CSV. Tale file è un estratto di active directory tramite il tool CSVDE.EXE. Ecco una linea di esempio del file Quote:
Sono impazzito con sed, non so un granchè di perl, alla fine mi sono scritto quattro righe di C il cui ciclo principale fa il seguente lavoro Quote:
La domanda è: siccome questa trasformazione deve essere fatta all'interno di uno script di bash, non è che qualcuno mi può indicare come farla con sed o con perl, in modo da non dover compilare un programma apposito per un lavoro così stupido ?
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
||
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Se vuoi so come farlo con cut:
cut -d \; -f 1 seleziona il primo campo perl e sed niente, sorry |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
con cut
cut è il mio "secondo passo" nello script che sto costruendo.
vedi la riga originale (il primo quote)? non posso usare cut -d \; perchè il punto e virgola NON è un separatore e neanche cut -d \, perchè virgola è un separatore ma SOLO all'esterno delle virgolette. bel problema no?
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Cagliari - Roma
Messaggi: 589
|
Per il Perl:
-Apri il file CSV -per ogni riga letta di CSV > $riga_letta=~s/\,/; /g; -Scrivi $riga_letta su file di appoggio Con Vi: -vai sul carattere da modificare (,) -premi il tasto "c" ed il tasto "l" -premi il tasto ";" -salvi Ciao.
__________________
Macbook Pro Mid 2012 con Samsung 840 PRO 256GB Asus N55 - Ho felicemente trattato con lee_oscar, reflectionofdawn, cogand. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Non puoi usare come separatore le "?
A te interessa il primo campo, giusto? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
x ilsensine:
vabbe tcc o compilare con gcc non mi fa molta differenza x pippo985 quello che dici tu sostituisce TUTTE le virgole con punto e virgola, e NON DA' il risultato corretto. infatti quando una cosa è compresa tra virgolette la virgola non fa da separatore. Guarda il mio codice C: intercetto l'apertura e la chiusura delle virgolette, e in quel caso non faccio sostituzioni, altrimenti le faccio. x lovaz in teoria potrei scartare il primo campo con un cut -d \" -f 3, visto che per il lavoro che sto facendo lo devo comunque ricostruire. Il punto è che vorrei la cosa il più riproducibile possibile. Mi spiego: oggi non me lo ha fatto, ma se domani CSVDE mi inserisce delle virgolette in uno dei campi in mezzo ?
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
up!
up!
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Re: up!
Quote:
mi si sono scervellato mezz'ora ma non ne son venuto fuori nonostante non sia proprio un caprone col sed.... vedo stasera se riesco a farlo andare te lo posto. |
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Jun 2000
Città: S.Giuliano (MI)
Messaggi: 1047
|
grazie
Quote:
Quote:
Con tutte le bibbie che sono state scritte su sed & awk si potrà fare, no?
__________________
“No te tomes tan en serio la vida, al fin y al cabo no saldrás vivo de ella” |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:20.



















