![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
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 |
| aiuto urgente: desidera verificare i dati in Oracle da Flate file | unknown123 | Shell scripting e di programmazione | 3 | 05-18-2009 06:36 PM |
| come convertire i risultati delle query di selezione di dati separati da virgola - urgente pls | Hemamalini | Shell scripting e di programmazione | 1 | 06-16-2008 05:27 AM |
| la formattazione del disco rigido (lavaggio) | Jamiee | SUN Solaris | 0 | 06-12-2008 08:48 AM |
| Aiuto sostituzione o lavaggio caratteri unicode | roninuta | Shell scripting e di programmazione | 3 | 01-21-2008 11:39 AM |
| [urgente bisogno di aiuto] confrontare i dati | Bucci | Shell scripting e di programmazione | 2 | 02-27-2007 11:27 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Hi All,
Ho un Flatfile (qualsiasi delimitazione) di milioni di righe di dati, in cui ho scrubb per i dati della linea dalla posizione ($ 1) di cui al parametro di input fino a quando la lunghezza ($ 2) di cui il parametro di input. Ho utilizzato awk, sed ma non sono in grado di farlo. macchia chiave - 12345 dovrebbe essere sostituito da 67890 ad esempio: 01289 - prima del lavaggio 06789 - dopo il lavaggio esempio: sample.ksh 6 4 Input - Flatfile: ------- "1234,5678, 0987,12345667,000000976655, +1234,013994878356 " "0987,23467,11243554,0000887651,1234567,09876,1234455 " "0987675,1223443,797784784784,09866545, +232322,097865 " Voglio che il file di output come fregati come segue: "1234,0678, 0987,12345667,000000976655, +1234,013994878356 " "0987,78967,11243554,0000887651,1234567,09876,1234455 " "0987675,6778443,797784784784,09866545, +232322,097865 " |
|
||||
|
se si dispone di Python
Codice:
#!/usr/bin/env python
import string
FROM="12345"
TO="67890"
table=string.maketrans(FROM,TO)
for line in open("file"):
line=line.strip().split(",")
line[1]=line[1][:4].translate(table) + ''.join(line[1][4:])
print ','.join(line)
Codice:
# python test.py "1234,0678,0987,12345667,000000976655,+1234,013994878356" "0987,78967,11243554,0000887651,1234567,09876,1234455" "0987675,6778443,797784784784,09866545,+232322,097865" |
|
||||
|
Codice:
sub scrub{
my($pos,$len)=(@_);
while(<DATA>){
substr($_,$pos-1,$len) =~ y/12345/67890/;
print $_;
}
}
scrub(6,3);
__DATA__
1234,5678,0987,12345667,000000976655,+1234,013994878356
0987,23467,11243554,0000887651,1234567,09876,1234455
0987,1223443,797784784784,09866545,+232322,097865
|
|
||||
|
Citazione:
Codice:
awk -F"," 'BEGIN{
t["1"]="6"
t["2"]="7"
t["3"]="8"
t["4"]="9"
t["5"]="0"
}
{
s=""
for(i=1;i<=4;i++){
if( substr($2,i,1) in t ){
s=s t[substr($2,i,1)]
}else{
s=s substr($2,i,1)
}
}
$2=s substr($2,5)
}
1
' OFS="," file
|
|
||||
|
URGENT: - I dati Scrubbing
il codice sopra non funziona .....
please help me in questo codice in KSH, CSH, SH .... Aggiornamento post ----- ----- ciao ragazzi, Ho scritto una awk prog ... come qui di seguito per farlo. ma il suo modo per tutti i numeri all'interno del Flatfile. Codice #: #! / usr / bin / awk-f BEGIN ( CnvFrom \u003d "0123456789"; CnvTo \u003d "4590382617"; Campo \u003d 1; ) ( Newfield \u003d "" for (i \u003d 1; i <\u003d lunghezza ($ campo); i + +) ( char \u003d substr ($ campo, i, 1); if (pos \u003d indice (CnvFrom, char)) char \u003d substr (CnvTo, pos, 1) Newfield \u003d char Newfield ) $ Field \u003d Newfield stampa ) Ma la mia requirment è necessario modificare / tradurre i valori dalla posizione (parametro di input - $ 2) e lunghezza (parametro di input - $ 3) per il Flatfile menzionato in una directory (parametro di input - $ 1). please help me .... ad esempio: scrub.ksh file1 68 9 ($ 1 - il nome del file, $ 2-postion (68), $ 3 - lenth da posizione (9)) Prima di macchia file1: --------------------- "37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, 000.000.000.005.897". "37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, 000.000.000.005.897". "37713000000", "12000000202", "0000000000000000000010739", "0000377310044493243", 20090114,20080501,20080531,20070224, 000.000.000.000.000". "37713000000", "12000000202", "0000000000000000000010739", "0000377311018365607", 20090114,20080401,20080430,20070224" Dopo macchia file1: ----------------- "37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, 000.000.000.005.897". "37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, 000.000.000.005.897". "37713000000", "12000000202", "0000000000000000000010739", "0000377310433370930", 20090114,20080501,20080531,20070224, 000.000.000.000.000". "37713000000", "12000000202", "0000000000000000000010739", "0000377311451028246", 20090114,20080401,20080430,20070224" please help me ..... Voglio che la macchia come parametri di input per la ..... please help .... Ultimo a cura di padhu.47; al 05/27/2009 05:43 AM.. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|