The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
presserende hjælp: vil kontrollere data i oracle fra flate fil unknown123 Shell Programmering og Scripting 3 05-18-2009 06:36 PM
hvordan man kan konvertere resultatet af at vælge forespørgslen til kommasepareret data - presserende pls Hemamalini Shell Programmering og Scripting 1 06-16-2008 05:27 AM
formatering af harddisken (skrubning) Jamiee Sun Solaris 0 06-12-2008 08:48 AM
Hjælp til erstatning eller skrubning unicode tegn roninuta Shell Programmering og Scripting 3 01-21-2008 11:39 AM
[presserende behov for hjælp] sammenligne data Bucci Shell Programmering og Scripting 2 02-27-2007 11:27 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-26-2009
padhu.47 padhu.47 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 4
Post UOPSÆTTELIG: - Data Scrubbing

Hi All,

Jeg har en Flatfile (enhver afgrænsning) for millioner af linjer af data, hvor jeg er nødt til at scrubb data i linje fra den holdning ($ 1) er angivet i inputparameteren indtil længde ($ 2) gives i inputparameteren. Jeg udnyttede awk, sed men jeg er ikke i stand til at gøre det.

krat nøgle - 12345 bør erstattes af 67890
f.eks: 01289 - før skrubning
06.789 - efter at skrubbe


Eksempel: 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 "

Jeg ønsker, at produktionen, som skrubbes fil som nedenfor:

"1234,0678, 0987,12345667,000000976655, +1234,013994878356 "
"0987,78967,11243554,0000887651,1234567,09876,1234455 "
"0987675,6778443,797784784784,09866545, +232322,097865 "
  #2 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.544
hvis du har Python
Code:
#!/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)
output
Code:
# python test.py
"1234,0678,0987,12345667,000000976655,+1234,013994878356"
"0987,78967,11243554,0000887651,1234567,09876,1234455"
"0987675,6778443,797784784784,09866545,+232322,097865"
  #3 (permalink)  
Old 05-26-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Indlæg: 1.088
Code:
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
  #4 (permalink)  
Old 05-26-2009
padhu.47 padhu.47 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 4
UOPSÆTTELIG: - Data skrubning

Hej Alle, tak for svaret ....
I dont have python eller perl ....
Jeg har kun ksh, bash, sh, CSH

behage hjælp mig
  #5 (permalink)  
Old 05-26-2009
Neo's Avatar
Neo Neo is offline Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Beliggenhed: Asia Pacific
Indlæg: 6.754
Citat:
Oprindeligt Indsendt af padhu.47 View Post
Hej Alle, tak for svaret ....
I dont have python eller perl ....
Jeg har kun ksh, bash, sh, CSH

behage hjælp mig
Bedre til at installere PERL eller Python. Det er gratis og nem at installere.
  #6 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.544
Citat:
Oprindeligt Indsendt af padhu.47 View Post
Hej Alle, tak for svaret ....
I dont have python eller perl ....
Jeg har kun ksh, bash, sh, CSH

behage hjælp mig
derefter bruge awk
Code:
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
  #7 (permalink)  
Old 05-27-2009
padhu.47 padhu.47 is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 4
UOPSÆTTELIG: - Data Scrubbing

ovennævnte kode ikke fungerer .....
behage hjælp mig med at skrive denne kode i ksh, CSH, SH ....

----- Post Update -----

Hej gutter,

Jeg har skrev en awk PROG ... som nedenfor for at gøre det. men gør for alle de numre inde i flatfile.

kode #:
#! / usr / bin / awk-f
BEGIN (
CnvFrom \u003d "0123456789";
CnvTo \u003d "4590382617";

Felt \u003d 1;
)
(
Newfield \u003d ""
for (i \u003d 1; i <\u003d længde ($ Field) i + +) (
CHAR \u003d substr ($ Field, i, 1);
if (pos \u003d indeks (CnvFrom, CHAR))
CHAR \u003d substr (CnvTo, pos, 1)
Newfield \u003d Newfield CHAR
)
$ Field \u003d Newfield
print
)


Men mit requirment er at ændre / omsætte værdierne fra holdning (inputparameteren - $ 2) og længde (inputparameteren - $ 3) for flatfile nævnt i en mappe (inputparameteren - $ 1). behage hjælp mig ....

f.eks: scrub.ksh file1 68 9 ($ 1 - filename, $ 2-postion (68), $ 3 - lenth fra holdning (9))

Før krat-file1:
---------------------
"37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, 000000000005897."
"37713000000", "12000000202", "0000000000000000000007102", "0000377310013683931", 20090114,20080301,20080331,20060304, 000000000005897."
"37713000000", "12000000202", "0000000000000000000010739", "0000377310044493243", 20090114,20080501,20080531,20070224, 000000000000000."
"37713000000", "12000000202", "0000000000000000000010739", "0000377311018365607", 20090114,20080401,20080430,20070224"


Efter krat-file1:
-----------------

"37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, 000000000005897."
"37713000000", "12000000202", "0000000000000000000007102", "0000377310450210705", 20090114,20080301,20080331,20060304, 000000000005897."
"37713000000", "12000000202", "0000000000000000000010739", "0000377310433370930", 20090114,20080501,20080531,20070224, 000000000000000."
"37713000000", "12000000202", "0000000000000000000010739", "0000377311451028246", 20090114,20080401,20080430,20070224"

behage hjælp mig ..... Jeg ønsker, at krat som pr Inputparametrene .....
behage hjælp ....

Sidst redigeret af padhu.47; 05-27-2009 på 05:43 AM..
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 02:28 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0